═══ 1. An Overview of Mesa DOK ═══ Mesa DOK includes 23 classes, which are described in detail in the "Developer Object Kit Class Reference". These classes are described here briefly, with an emphasis on how they interact with one another.  Models Within Mesa DOK, the term model refers to an open Mesa 2 file. (Within the Mesa 2 User's Guide, the terms "file" and "workbook" are usually used; the term "worksheet" is used occassionally, as well. These terms can be considered interchangable.) The MMesaModel class allows you to create a model, associate it with a file, retrieve and alter information within that model, and initiate model-specific operations (see MMesaModel). Every model contains one or more "pages", which are either layer pages or script pages. A layer page can be thought of as a single page in a workbook, containing a two-dimensional "slice" of the three-dimensional matrix of cells within the model. A script page can also be thought of as a page in a workbook, but it does not contain any cells; instead, it contains an executable REXX program. Various items of information are maintained on a per-page basis - for example, each layer can have its own name. All of this information can be accessed through the MMesaModel instance (see MMesaModel::getLayerName()). Other items of information are maintained on a per-model basis, and are described fully along with the model class itself. Among the more important items contained in a model are: 1. Cells Every model contains between one and 12 trillion cells, arranged in a three-dimensional matrix with rows along the X (horizontal) axis, columns along the Y (vertical) axis, and layers along the Z axis. Any cell in a model can be referred to via its three-dimensional address (row, column, and layer), indicating where in the matrix it is. - Cell addresses You can refer to a cell by its absolute address, specifying its row, column and layer exactly, or you can refer to it via a relative address, specifying the distance in rows, columns, and layers between it and another cell whose address is known. Every cell address, both relative and absolute, is represented by an instance of MAddress (see MAddress). - Cell contents Each cell can contain a number, a string, a formula, or an array of numbers and/or strings. The contents of a cell can be queried or altered through the MMesaModel instance (see MMesaModel::getCellString()). - Cell values Each cell has a value, which may be different from its contents (for example, if a cell contains the formula @SQRT(100), its value is 10), and which is recalculated regularly by the model based on the cell's contents. The value of a cell can be queried through the MMesaModel instance (see MMesaModel::getCellValue()). - Cell formats Each cell has a format, which controls how the cell value is drawn on the screen or by a printer. For example, cells A1 and A2 may share the value 2200, but cell A1 may display $2,200.00 in blue 12-point Helvetica Bold, while cell A2 displays 2.2e3 in red 24-point Times Rmn. Alignment, font and typeface, text and background color, presence and color of borders, and much more can be included in the format of a cell. Every distinct format within a model is represented by an instance of MFormat (see MFormat). Every instance of MFormat, in turn, refers to an instance of MFont (representing the font family, size, and typeface of the format) and several instances of MColor (representing text color, background color, border colors, etc.). 2. Graphicobjects Every model can contain any number of graphic objects, or frames. Among the types of frames that can be included are geometric shapes (rectangles, lines, ovals, etc.), OS/2 .BMP files, and any of a wide variety of graphs - for example, a column graph of a range of data. (The terms "frame", "graph", and "graphic object" can be considered interchangable in this document, and refer to any of the objects just mentioned). Every frame within a model has a unique name and can be referred to by that name in order to access or edit it. While the frames themselves are implemented as a subclass of MFrame (an internal class not available through Mesa DOK), a frame's properties can be altered by merging it with an instance of MFrameXfer (see MFrameXfer) through the MMesaModel instance that contains it (see MMesaModel::setFrameInfo()). Generally speaking, interactions with Mesa DOK frames are handled through MFrameXfer. 3. Current selection(s) Every model keeps track of the current selection - the object or set of objects that future actions should affect by default. Every layer has a selection associated with it, and when that layer is displayed, the associated selection is activated. All of this information is stored within an instance of MSelection, which is associated with the model (see MSelection). A selection consists of a range of cells, which can be discontinuous, and is represented by an instance of MRange (see MRange). It may also contain some number of frames - the MSelection instance maintains a list of frame names. Generally speaking, an action taken within the Mesa 2 application will affect some or all of the current selection. Actions that apply to a single cell will affect the base cell, actions that apply to a frame will affect all selected frames, and actions that apply to one or more cells will affect the entire selected range. 4. Interested objects Every model maintains a list of objects which have registered some interest in it. For example, every window that displays some part of the model registers interest in that model. As long as something is still interested in it, the model stays open; conversely, when nothing is registering interest in it, the model destroys itself. Interest in a model is represented by an instance of MInterest (see MInterest), and is registered directly through the MMesaModel instance (see MMesaModel::registerInterest()). Note that the information about the model is actually stored in an instance of MModel, which is a Mesa-internal class not directly available through DOK. MMesaModel is a wrapper around the MModel class which your application can use to access Mesa's model functionality. - Windows MWindow is the class from which all Mesa windows inherit their basic behavior (see MWindow). This behavior subsumes the standard OS/2 window behavior, since MWindow implements a series of pass-through functions to the default window handler. MView represents any region that can be placed inside a normal OS/2 window (see MView). It is not directly instantiated, but if you want to customize the display of information within your application, you will probably need to create your own subclasses of MView. MSheetView is a pre-created MView subclass that draws a layer of data, including row and column headers (see MSheetView). MMesaView is another pre-created MView subclass that combines an MSheetView with a pair of scrollbars (see MMesaView).Any point within an MWindow can be identified by its horizontal and vertical distance from the upper-left corner of that window. This information is generally stored in an MPoint instance (see MPoint). For example, when you click the mouse on a layer to select a cell, an MPoint is created that represents the position of the mouse. Then, the model is queried to determine the address of the cell being displayed at that point (see MMesaModel::addressFromPoint()). Similarly, any rectangular region within an MWindow can be identified by the MPoints representing its upper-left and lower-right corners. That information is generally stored in an MRect instance (see MRect). For example, when creating a graph, you must specify the rectangle within which the frame is to be created (see MMesaModel::createGraph()). - Input and output -- Byte streams Most input and output within Mesa DOK is handled through MStream, a platform-independant streaming protocol that represents a "stream" of data, and behaves consistently no matter what I/O device is being used. Other classes can write themselves out to and read themselves in from a stream without knowing or caring where the data is actually coming from or going. When an item is written to a stream, it is written with an identifier, followed by the position in the stream of the next item (to allow easy skipping over the current item if desired), followed by the item itself. There are two subclasses of MStream defined within Mesa DOK - one to handle clipboard I/O (see MClipStream) and one to handle file I/O (see MFileStream). You can subclass MStream within your own application to handle application-specific I/O in the same way. -- Printing For the most part, Mesa handles printing the same way it handles drawing to the screen - the printer is treated as just another space to draw on by the model (see MMesaModel::print()). One exception is that when printing, the model must keep track of various aspects of the print job - margins, headers, footers, and so forth. This information is stored in an MPrintHead instance (see MPrintHead). - The controller A controller is an object that handles application-wide message passing. Within Mesa 2 the controller object maintains a list of models and the real time data feed table, performs licensing functions, handles file opening and error panels, and in general handles all functions that are not associated with a specific MMesaModel instance. MGController is a generic controller object (see MGController). In order to use the Mesa DLLs, you must create and instantiate a subclass of MGController that properly handles message-passing between the DLLs and your application. Understanding the MGController class and how it interacts with your application is very important in learning to use DOK. Mesa DOK includes MException, a class that handles errors within Mesa 2, and can be extended by your custom application to handle other types of exceptions. MException instances can be passed to and from the controller for a variety of purposes, and many methods include an MException parameter for returning status information. ═══ 1.1. Mesa DOK class heirarchy ═══ Another way to categorize the Mesa DOK classes is through a class heirarchy, emphasizing inheritance relationships between the various classes, as follows:  MObject (see MObject) MObject is the base class for all objects with virtual tables, and it allows those classes and instances to query information about themselves. The following classes inherit from MObject: - MFrameXfer (see MFrameXfer) Stores information about a Mesa graphic object (for example, a graph or a geometric shape). - MGController (see MGController) Handles application-wide message passing. - MInterest (see MInterest) Allows one object to declare an "interest" in another. - MMesaModel (see MMesaModel) Represents an open Mesa 2 file. - MPrintHead (see MPrintHead) Stores information related to a print operation - margins, headers, footers, etc. - MStream (see MStream) Handles input and output in a platform-independant fashion. The following platform-dependant input/output classes inherit from MStream: -- MClipStream (see MClipStream) Handles OS/2 clipboard I/O. -- MFileStream (see MFileStream) Handles OS/2 file system I/O. - MWindow (see MWindow) Handles windowing functions within Mesa DOK. The following Mesa-specific window classes inherit from MWindow: -- MEditView (see MEditView) Implements an edit view: a rectangular region within which text can be edited. -- MMesaView (see MMesaView) Handles the relationship between a display window, an MSheetView instance (see below), and a set of scrollbars. -- MSheetView (see MSheetView) Handles the drawing of a layer of data, including row and column headers. Mesa DOK also includes the following classes which do not inherit from any other DOK class:  MAddress (see MAddress)  MColor (see MColor)  MException (see MException)  MFont (see MFont)  MFormat (see MFormat)  MPoint (see MPoint)  MRange (see MRange)  MRect (see MRect)  MSelection (see MSelection) ═══ 2. Developer Object Kit Class Reference ═══ The Mesa Developer Object Kit (DOK) consists of the following classes:  MAddress Holds the three-dimensional address (relative or absolute) of a cell in a model.  MClipStream Handles input and output to the OS/2 clipboard.  MColor Stores color and pattern information for a single color instance.  MEditView Implements an edit view: a rectangular region within which text can be edited.  MException Stores an application-defined error. Can be expanded to include warnings and other kinds of exceptions.  MFileStream Abstracts the OS/2 file system and allows data to be written to or read from disk.  MFont Stores font family, size, and typeface information for a single font instance.  MFormat Stores formatting information that controls how a cell's contents are displayed.  MFrameXfer Stores information about a Mesa graphic object (for example, a graph or a geometric shape),otherwise known as a frame.  MGController An application-specific, abstract base class that handles application-wide message passing. Essentially, any information or task that is not file-specific is stored in and handled by the controller.  MInterest Abstract base class that represents interest in an model, which results in notifications being sent when that model undergoes a state change. Each model maintains a list of registered interests in it, and notifies the interest whenever an appropriate state change occurs.  MMesaModel Represents an open Mesa 2 file, often called a workbook or a model. In general, all information and processes specific to a single Mesa 2 file can be accessed and initiated by the MMesaModel instance that represents that file.  MMesaView Handles the "spreadsheet" part of a single file window, including scrollbars and the sheet display.  MObject Base class for all objects with virtual tables in Mesa DOK. MObject allows other classes and instances to query information about themselves.  MPoint Represents a single point within the application window - for example, the point where a mouse-down event occurs. MPoint is an abstraction of the OS/2 POINTL class, existing primarily to allow alterations to point-handling routines to be made in a single place in the code.  MPrintHead Each MPrintHead instance keeps track of print-job related information:  MRange Represents a range of cells within a model.  MRect Represents a rectangular region within the application window - for example, the size of a selected rectangular range.  MSelection An MSelection represents a set of model contents, such as ranges and graphs, and also maintains other information about the view and model that it is associated with.  MSheetView Represents a view into a layer of data, including row and column headers.  MStream Handles input and output in a platform-independant fashion.  MView Handles abstract views - display regions that can be placed inside a normal OS/2 window. The other Mesa DOK view classes, such as MMesaView and MSheetView, are all subclasses of MView.  MWindow MWindow is the basic Mesa window class; all windows within the application are subclasses of MWindow. ═══ 2.1. MAddress ═══ address.h is the source file for this class. ach cell in a model can be referenced via a three-dimensional coordinate (row, column, layer) in one of two ways: via absolute reference, where the three coordinates are given from the upper-left corner of the model (cell [A]A1), or relative reference, where they are given from some other cell in the model. In order to work with a relative address, it is frequently necessary to determine the absolute address of the cell it refers to. To do this requires that it be merged with respect to another address via MAddress::doMerge(). Each MAddress instance keeps track of coordinates for row, column, and layer (these are integers, starting at 0). Additionally, each instance keeps relative flags for row, column, and layer, indicating whether that part of the address is relative or not, and a null-address flag, indicating whether the instance currently represents a valid address. ═══ 2.1.1. Creating, destroying, and initializing an MAddress instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.1.1.1. MAddress::free() ═══ free() Resets all variables and sets null-address flag true. void ═══ 2.1.1.2. MAddress::init() ═══ init() Clears the row, column, layer coordinates; sets null-address flag true. void init(int r, int c, int l) int r New row coordinate int c New column coordinate int l New layer coordinate Sets row, column and layer coordinates to r, c, and l, respectively. Sets all relative flags true. void init(const MAddress *ad) const MAddress *ad MAddress reference to initialize from Sets all coordinates and flags equal to those in ad. void init(MStream *st) MStream *st Input stream Sets all coordinates and flags equal to those read from st (see MStream). void ═══ 2.1.2. Reading and writing an MAddress instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.1.2.1. MAddress::read() ═══ read(MStream *st) MStream *st Input stream Sets all coordinates and flags equal to those read from st. The stream must have been written to via MAddress::write() for this to work (see MStream). void ═══ 2.1.2.2. MAddress::write() ═══ write(MStream *st) const MStream *st Output stream Outputs the MAddress instance to st (see MStream). void ═══ 2.1.3. Retrieving information about an MAddress instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.1.3.1. MAddress::getAbsRow() ═══ getAbsRow() const Returns 1 if the row is an absolute reference, 0 otherwise. int ═══ 2.1.3.2. MAddress::getAbsCol() ═══ getAbsCol() const Returns 1 if the column is an absolute reference, 0 otherwise. int ═══ 2.1.3.3. MAddress::getAbsLayer() ═══ getAbsLayer() const Returns 1 if the layer is an absolute reference, 0 otherwise. int ═══ 2.1.3.4. MAddress::getCol() ═══ getCol() const Returns column coordinate. int ═══ 2.1.3.5. MAddress::getRow() ═══ getRow() const Returns row coordinate. int ═══ 2.1.3.6. MAddress::getLayer() ═══ getLayer() const Returns layer coordinate. int ═══ 2.1.3.7. MAddress::isNull() ═══ isNull() const Returns 1 if null-address flag is set, 0 otherwise. int ═══ 2.1.3.8. MAddress::inRange() ═══ inRange(const MAddress *ul, const MAddress *lr) const const MAddress *ul Upper-left corner of the range const MAddress *lr Lower-right corner of the range Given two corners of a range, determines whether the current MAddress instance is within that range. The range can be three-dimensional - that is, ul and lr can be on different layers. If null-address flag is set for this instance or for ul, returns 0. If null-address flag is set for lr: If this instance is equal to ul, returns 1; otherwise returns 0. If all the addresses are valid: Returns 1 if cell is within range, 0 otherwise. For example, if ul has row 3, column 4, and layer 2 and lr has row 6, column 7, and layer 5, then inRange(ul, lr) will return 1 if the current MAddress instance is anywhere in the range [C]E4:[F]H7. int ═══ 2.1.3.9. MAddress::toStr() ═══ toStr(char *s, int lay = -1) const char *s Buffer to store string form of address int lay Include layer? -1 for yes, 0 otherwise. Defaults to -1 Creates a string representation of this address, in one of the following forms: [] (if lay is -1, or if lay is different from layer coordinate, or if layer reference is absolute) (otherwise) ...where layerLabel and colLabel are alphabetical (i.e.; 0 ="A", 1 = "B", etc.), rowLabel is numeric and 1-based (i.e.; 0 =1, 1 =2, etc.), and each is preceded with a $ if the associated relative flag is false (see also MMesaModel::adToStr() ). Some examples: If layer coordinate is 0, row coordinate is 1, column coordinate is 2, relative row and relative column flags are false, and relative layer is true, then toStr(string, 0) will set string to $C$2. If layer coordinate is 0, row coordinate is 1, column coordinate is 2, and all the relative flags are false, then toStr(string, 0) will set string to [$A]$C$2. void ═══ 2.1.4. Changing values in an MAddress instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.1.4.1. MAddress::doMerge() ═══ doMerge(const MAddress *) const MAddress * Absolute address of the cell from which to dereference the current MAddress instance. Sets the layer coordinate, row coordinate, and column coordinate for the current instance to the sum of the existing values and the corresponding values in the address passed in, and sets all relative flags false. For example, if a user enters in cell [A]B1 the formula =C2, this is interpreted as a relative reference - that is, an MAddress instance with layer coordinate 0, row coordinate 1, column coordinate 1, and all relative flags true (call it this). When the cell's value is calculated, doMerge(base) is performed on this, where base is the absolute address of cell [A]B1 - that is, an MAddress instance with layer coordinate 0, row coordinate 0, column coordinate 1, and all relative flags false. Subsequently, this has layer coordinate 0, row coordinate 1, column coordinate 2, and all relative flags false - that is, this now refers to cell [$A]$C$2, which is precisely what was intended. void ═══ 2.1.4.2. MAddress::makeAbs() ═══ makeAbs() Clears relative flags for row, column and layer, making this instance an absolute reference. void ═══ 2.1.4.3. MAddress::makeNull() ═══ makeNull() Sets null-address flag . void ═══ 2.1.4.4. MAddress::offset() ═══ offset(int r, int c, int l) int r Row offset int c Column offset int l Layer offset Increments row, column, and layer coordinates by r, c and l, respectively. Preserves the current status of all relative flags. void ═══ 2.1.4.5. MAddress::offsetRel() ═══ offsetRel(int r, int c, int l) int r Row offset int c Column offset int l Layer offset Increments row, column, and/or layer coordinates by r, c and/or l, respectively. Only coordinates for which the relative flag is true are incremented; others are unchanged. For example, if the layer coordinate is 0, the row coordinate is 1, the column coordinate is 2, and relative is set for the row and column but not the layer, then offsetRel(2, 2, 2) will change the row coordinate to 3 and the column coordinate to 4, leaving the layer coordinate untouched. void ═══ 2.1.4.6. MAddress::offsetAbs() ═══ offsetAbs(int r, int c, int l) int r Row offset int c Column offset int l Layer offset Increments row, column, and/or layer coordinates by r, c and/or l, respectively. Only coordinates for which the relative flag is false are incremented; others are unchanged. For example, if the layer coordinate is 0, the row coordinate is 1, the column coordinate is 2, and relative is set for the layer but not the row or column, then offsetRel(2, 2, 2) will change the row coordinate to 3 and the column coordinate to 4, leaving the layer coordinate untouched. void ═══ 2.1.4.7. MAddress::set() ═══ set(const MAddress *ad) const MAddress *ad Address to set to. Sets all coordinates and flags equal to those in ad. void set(int r, int c, int l) int r New row value int c New column value int l New layer value Sets row, column, and layer coordinates equal to r, c, and l, respectively. Clears all relative flags. void ═══ 2.1.4.8. MAddress::setRow() ═══ setRow(int r) int r New row value Sets row coordinate to r, and sets relative row flag. void ═══ 2.1.4.9. MAddress::setCol() ═══ setCol(int c) int c New column value Sets column coordinate to c, and sets relative column flag. void ═══ 2.1.4.10. MAddress::setLayer() ═══ setLayer(int l) int l New layer value Sets layer coordinate to l, and sets relative layer flag. void ═══ 2.1.4.11. MAddress::setRawCol() ═══ setRawCol(int c) int c New column value Sets column coordinate to c, leaves relative column flag unchanged. void ═══ 2.1.4.12. MAddress::setRawLayer() ═══ setRawLayer(int l) int l New layer value Sets layer coordinate to l, leaves relative layer flag unchanged. void ═══ 2.1.4.13. MAddress::setRawRow() ═══ setRawRow(int r) int r New row value Sets row coordinate to r, leaves relative row flag unchanged. void ═══ 2.1.4.14. MAddress::setAbsCol() ═══ setAbsCol(int c) int c New column value Sets row coordinate to c, clears relative column flag. void ═══ 2.1.4.15. MAddress::setAbsLayer() ═══ setAbsLayer(int l) int l New layer value Sets row coordinate to l, clears relative layer flag. void ═══ 2.1.4.16. MAddress::setAbsRow() ═══ setAbsRow(int r) int r New row value Sets row coordinate to r, clears relative row flag. void ═══ 2.1.4.17. MAddress::swapColInfo() ═══ swapColInfo(MAddress &ad) MAddress &ad Address to swap with Swaps the values of the column coordinate and relative column flag in this instance with the corresponding values in ad. void ═══ 2.1.4.18. MAddress::swapLayerInfo() ═══ swapLayerInfo(MAddress &ad) MAddress &ad Address to swap with Swaps the values of the layer coordinate and relative layer flag in this instance with the corresponding values in ad. void ═══ 2.1.4.19. MAddress::swapRowInfo() ═══ swapRowInfo(MAddress &ad) MAddress &ad Address to swap with Swaps the values of the row coordinate and relative row flag in this instance with the corresponding values in ad. void ═══ 2.1.4.20. MAddress::zap() ═══ zap() Sets null-address flag to true. void ═══ 2.1.5. MAddress operators ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.1.5.1. MAddress::operator==() ═══ operator== (const MAddress &ad) const const MAddress &ad Address to compare Compares the current instance to ad. If null-address flag is set for either, returns 0. Otherwise, if row, column, and layer coordinates all match (ignoring relative flags), returns 1; if not, returns 0. int ═══ 2.1.5.2. MAddress::operator>() ═══ operator> (const MAddress &ad) const const MAddress &ad Address to compare to Compares the current instance to ad. If null-address flag is set for either, returns 0. Otherwise, layer coordinates are compared. If layer coordinates are identical, row coordinates are compared; if those are identical then column coordinates are compared. Returns 1 if the current instance is greater than ad, 0 otherwise. int ═══ 2.1.5.3. MAddress::operator>=() ═══ operator>= (const MAddress &ad) const const MAddress &ad Address to compare to Compares the current instance to ad. If null-address flag is set for either, returns 0. Otherwise, layer coordinates are compared. If layer coordinates are identical, row coordinates are compared; if those are identical then column coordinates are compared. Returns 1 if the current instance is greater than ad, 0 otherwise. int ═══ 2.1.5.4. MAddress::operator<() ═══ operator< (const MAddress &ad) const const MAddress &ad Address to compare to Compares the current instance to ad. If null-address flag is set for either, returns 0. Otherwise, layer coordinates are compared. If layer coordinates are identical, row coordinates are compared; if those are identical then column coordinates are compared. Returns 1 if the current address is less than ad, 0 otherwise. int ═══ 2.1.5.5. MAddress::operator<=() ═══ operator<= (const MAddress &ad) const const MAddress &ad Address to compare to Compares the current instance to ad. If null-address flag is set for either, returns 0. Otherwise, layer coordinates are compared. If layer coordinates are identical, row coordinates are compared; if those are identical then column coordinates are compared. Returns 1 if the current address is less than or equal to ad, 0 otherwise. int ═══ 2.1.5.6. MAddress::operator!=() ═══ operator!= (const MAddress &ad) const const MAddress &ad Address to compare to. Compares the current instance to ad. If null-address flag is set for either, returns 0. Otherwise, if row, column, and layer coordinates all match (ignoring relative flags), returns 0; if not, returns 1. int ═══ 2.2. MClipStream ═══ clipstream.h is the source file for this class. This class inherits from MStream Handles input and output to the OS/2 clipboard. MClipStream can read and write ASCII text, RTF text, OS/2 bitmaps (BMP), OS/2 metafile pictures (MET), and Mesa 2's internal format. When cell contents are copied or cut to the clipboard, all text formats (e.g; ASCII, RTF and Mesa 2) are usually placed there simultaneously, allowing a selection to be made when data is being read from the clipboard. Additionally, DDE information is generally placed on the clipboard at the same time, allowing DDE-enabled applications (including Mesa 2) to create a DDE link via a "Paste Link" command. Each MClipStream instance maintains several memory buffers in which to store the various formats it supports (ASCII, DDE, RTF, OS/2 BMP, MET, and Mesa 2's internal format), as well as shared-memory buffer to send and/or receive information from the clipboard. It also maintains a RESETANDSTUFF flag, which determines whether buffer values are written to the clipboard when the instance is destroyed; and a DONTSTUFF flag, which determines whether the temporary buffers are freed when the instance is destroyed. Like all other MStream subclasses, it also keeps track of current and next-element stream positions, allocates storage for any errors that may occur, and maintains a version number. For more information, see "MStream". ═══ 2.2.1. Creating, destroying, and initializing an MClipStream instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.2.1.1. MClipStream::MClipStream() ═══ MClipStream(HAB) HAB Handle to the application's anchor block. Opens the clipboard for use by this process/thread, queries the clipboard data and associates the various buffers with that data. void ═══ 2.2.1.2. MClipStream::~MClipStream() ═══ ~MClipStream() [virtual] Closes the clipboard and unlocks it. If DONTSTUFF has been set, it frees the various buffers that have been allocated. Otherwise, if RESETANDSTUFF has been set, it clears the clipboard and writes the contents of the various buffers to the appropriate locations in the clipboard. void ═══ 2.2.1.3. MClipStream::resetClipboard() ═══ resetClipboard() [virtual] Sets RESETANDSTUFF to 1 and zeros all buffers. void ═══ 2.2.1.4. MClipStream::setDontStuff() ═══ setDontStuff(int i) [virtual] int i New value for DONTSTUFF Sets DONTSTUFF to i. void ═══ 2.2.2. Reading from the clipboard ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.2.2.1. MClipStream::beginReadLink() ═══ beginReadLink() [virtual] Sets the shared-memory buffer so that MClipStream::read() will read clipboard data into the DDE link buffer. void ═══ 2.2.2.2. MClipStream::beginReadRTF() ═══ beginReadRTF() [virtual] Sets the shared-memory buffer so that MClipStream::read() will read clipboard data into the RTF buffer. void ═══ 2.2.2.3. MClipStream::beginReadText() ═══ beginReadText() [virtual] Sets the shared-memory buffer so that MClipStream::read() will read clipboard data into the ASCII buffer. void ═══ 2.2.2.4. MClipStream::beginReadBitmap() ═══ beginReadBitmap() [virtual] Sets the shared-memory buffer so that MClipStream::read() will read clipboard data into the BMP buffer. void ═══ 2.2.2.5. MClipStream::beginReadMesa() ═══ beginReadMesa() [virtual] Sets the shared-memory buffer so that MClipStream::read() will read clipboard data into the Mesa-format buffer. void ═══ 2.2.2.6. MClipStream::beginReadPict() ═══ beginReadPict() [virtual] Sets the shared-memory buffer so that MClipStream::read() will read clipboard data into the MET buffer. void ═══ 2.2.2.7. MClipStream::beginWrite() ═══ beginWrite() [virtual] Allocates shared memory into the shared-memory buffer. void ═══ 2.2.2.8. MClipStream::endClipRead() ═══ endClipRead() [virtual] Terminates reading from the clipboard. void ═══ 2.2.2.9. MClipStream::read() ═══ read(void *, int) [virtual] void * Buffer into which the clipboard bytes should be copied int Number of bytes to be copied Copies from the clipboard buffer to the buffer provided. Returns number of bytes actually copied. int ═══ 2.2.3. Writing to the clipboard ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.2.3.1. MClipStream::endWriteBitmap() ═══ endWriteBitmap() [virtual] Lets the clipboard know that the object just placed there is in BMP format. void ═══ 2.2.3.2. MClipStream::endWriteLink() ═══ endWriteLink() [virtual] Lets the clipboard know that the object just placed there is in DDE link format. void ═══ 2.2.3.3. MClipStream::endWriteRTF() ═══ endWriteRTF() [virtual] Lets the clipboard know that the object just placed there is in RTF format. void ═══ 2.2.3.4. MClipStream::endWriteMesa() ═══ endWriteMesa() [virtual] Lets the clipboard know that the object just placed there is in Mesa format. void ═══ 2.2.3.5. MClipStream::endWritePict() ═══ endWritePict() [virtual] Lets the clipboard know that the object just placed there is in MET format. void ═══ 2.2.3.6. MClipStream::endWriteText() ═══ endWriteText() [virtual] Lets the clipboard know that the object just placed there is in ASCII format. void ═══ 2.2.3.7. MClipStream::write() ═══ write(const void *, int) [virtual] const void *buf Buffer to copy from int n Number of bytes to copy from the buffer to the clipboard. Attempts to copy n bytes from buf to the clipboard memory buffer. Returns number of bytes written. int ═══ 2.2.4. Querying the clipboard ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.2.4.1. MClipStream::hasBitmap() ═══ hasBitmap() [virtual] Returns 1 if the clipboard contents are in BMP format, 0 otherwise. int ═══ 2.2.4.2. MClipStream::hasLink() ═══ hasLink() [virtual] Returns 1 if the clipboard contents are in DDE link format, 0 otherwise. int ═══ 2.2.4.3. MClipStream::hasRTF() ═══ hasRTF() [virtual] Returns 1 if the clipboard contents are in RTF, 0 otherwise. int ═══ 2.2.4.4. MClipStream::hasMesa() ═══ hasMesa() [virtual] Returns 1 if the clipboard contents are in Mesa format, 0 otherwise. int ═══ 2.2.4.5. MClipStream::hasPict() ═══ hasPict() [virtual] Returns 1 if the clipboard contents are in MET format, 0 otherwise. int ═══ 2.2.4.6. MClipStream::hasText() ═══ hasText() [virtual] Returns 1 if the clipboard contents are in ASCII format, 0 otherwise. int ═══ 2.2.5. Retrieving information about MClipStream buffers ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.2.5.1. MClipStream::getLinkPtr() ═══ getLinkPtr() [virtual] Returns pointer to DDE link buffer. const char * ═══ 2.2.5.2. MClipStream::getMesaPtr() ═══ getMesaPtr(int &l) [virtual] int &l Storage variable. Stores the allocated size of the Mesa format buffer and returns pointer to Mesa format buffer. const char * ═══ 2.2.5.3. MClipStream::getRTFPtr() ═══ getRTFPtr() [virtual] Returns pointer to RTF buffer. const char * ═══ 2.2.5.4. MClipStream::getPos() ═══ getPos() [virtual] Returns current position within the stream buffer. int ═══ 2.2.5.5. MClipStream::getTextPtr() ═══ getTextPtr() [virtual] Returns pointer to ASCII buffer. const char * ═══ 2.2.6. Navigating within the stream ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.2.6.1. MClipStream::getStreamLen() ═══ getStreamLen() [virtual] Returns number of valid bytes in the stream. int ═══ 2.2.6.2. MClipStream::isEOF() ═══ isEOF() [virtual] Returns 1 if at the end of stream, 0 otherwise. int ═══ 2.2.6.3. MClipStream::seek() ═══ seek(int pos) [virtual] int pos Position to move to Attempts to set the current location within the stream to pos. Returns new location within the stream. int ═══ 2.3. MColor ═══ color.h is the source file for this class. Stores color and pattern information for a single color instance. For example, if a cell in Mesa has a red background and blue text, there are at least two MColor instances associated with that cell - a "red" MColor, which is associated with the background, and a "blue" MColor, which is associated with the text. Which MColor is associated with what aspect of the cell is controlled by the MFormat class (see MFormat). Every MColor instance contains two 24-bit RGB color values (foreground and background) Given values of red, green and blue between 0 and 255, use set(red, green, blue) to assign that color value to an existing MColor instance (see set(int, int, int)). Or, use set(colorValue), where colorValue is either a predefined color constant like MCOL_RED (see "Color constants") or is calculated using the following equation: (16777216 * pattern) + (red * 65536) + (green * 256) + blue ...where pattern is an optional index into array of known patterns. If pattern is 0, the color is a solid color; currently, this is the only pattern defined within Mesa DOK. The background color is only used if the pattern is not solid (and is therefore currently unused within Mesa DOK). For example, an MColor instance representing red with white stripes would have its color set to MCOL_WHITE and its background color set to MCOL_RED. ═══ 2.3.1. Creating, destroying, and initializing an MColor instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.3.1.1. MColor::free() ═══ free() Deallocates any resources used. void ═══ 2.3.1.2. MColor::init() ═══ init(MStream *st) MStream *st Input stream Reads all color and pattern values from st (see MStream). void init(int t) int t New foreground color value Sets color to t and clears background color. void init(const MColor *c) const MColor *c MColor instance to initialize from Sets all color and pattern values equal to the equivalent components of c. void init() Initializes this instance to default values. void ═══ 2.3.2. Reading and writing an MColor instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.3.2.1. MColor::read() ═══ read(MStream *st) MStream *st Input stream Reads all color and pattern values from st (see MStream). void ═══ 2.3.2.2. MColor::write() ═══ write(MStream *st) const MStream *st Output stream Writes all color and pattern values out to st (see MStream). void ═══ 2.3.3. Retrieving information about an MColor instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.3.3.1. MColor::getRGB() ═══ getRGB() Returns the color value, (red * 65536) + (green * 256) + blue. (Compare with MColor::getColor().) int ═══ 2.3.3.2. MColor::getBlue() ═══ getBlue() Returns the blue component of the RGB color. unsigned int ═══ 2.3.3.3. MColor::getColorFromPalette() ═══ getColorFromPalette(MColor *palette, int numInPalette) MColor *palette Array of MColors to be selected from int numInPalette Size of palette Returns an index into palette pointing to the color there that matches the current color most closely. "Close match" is calculated by adding the absolute differences between the red, green and blue values; the smallest total difference wins. int ═══ 2.3.3.4. MColor::getGreen() ═══ getGreen() Returns the green component of the RGB color. unsigned int ═══ 2.3.3.5. MColor::getRed() ═══ getRed() Returns the red component of the RGB color. unsigned int ═══ 2.3.3.6. MColor::getColor() ═══ getColor() Returns the color-and-pattern value, (16777216 * pattern) + (red * 65536) + (green * 256) + blue. Note that if the pattern is solid (i.e.; if pattern equals 0), this is identical to the color value (see MColor::getRGB()). int ═══ 2.3.3.7. MColor::getPattern() ═══ getPattern() Returns pattern value (index into an array of known patterns; currently always 0). int ═══ 2.3.3.8. MColor::getBkgRGB() ═══ getBkgRGB() Returns background color value, (red * 65536) + (green * 256) + blue. This value is not currently used within Mesa DOK. int ═══ 2.3.3.9. MColor::getBkgPattern() ═══ getBkgPattern() Returns backgroundpattern value (index into an array of known patterns; currently always 0). int ═══ 2.3.4. Changing values in an MColor instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.3.4.1. MColor::average() ═══ average(MColor col) MColor col Color instance to average with Sets current color to the average of the current color and col. Clears pattern and background color. void ═══ 2.3.4.2. MColor::set() ═══ set(int c) int c New color-and-pattern value Sets color and pattern values to c, and resets the background color. c should be either a predefined color constant or a color-and-pattern value constructed as follows: (16777216 * pattern) + (red * 65536) + (green * 256) + blue (see "Color constants") . void set(MColor) MColor MColor instance to take values from Sets the color values to those of the MColor instance passed in. void set(const MColor *) const MColor * MColor instance to take values from Sets the color values to those of the instance passed in. void set(int, int, int) int Red value int Green value int Blue value Sets the color value to the RGB values passed in; sets the pattern component to 0, and the background color to 0. void set(const char *colorName) const char *colorName Null-terminated string for a named color Sets color value to the named color (see "Color constants" for a list of valid color names). If colorName is not a valid name, sets color black. Returns 1 if colorName is a valid color name, 0 otherwise. int ═══ 2.3.5. MColor operators ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.3.5.1. MColor::operator==() ═══ operator==(const MColor &) const const MColor &c Color to compare to Returns 1 if current color and pattern values (foreground and background) are equal to those of c; 0 otherwise. int ═══ 2.3.5.2. MColor::operator!=() ═══ operator!=(const MColor &) const const MColor & Color to compare to Returns 0 if current color and pattern values (foreground and background) are equal to those of c; 1 otherwise. int ═══ 2.3.5.3. MColor::operator>() ═══ operator>(const MColor &c) const const MColor &c Color to compare to Compares current color and pattern values (foreground and background) to those of c. The following precedence order is used: foreground pattern foreground red foreground greed foreground blue background pattern background red background greed background blue Returns 1 if the current instance is greater than c, 0 otherwise. int ═══ 2.3.5.4. MColor::operator>=() ═══ operator>=(const MColor &) const const MColor &c Color to compare to Compares current color and pattern values (foreground and background) to those of c. The following precedence order is used: foreground pattern foreground red foreground greed foreground blue background pattern background red background greed background blue Returns 1 if the current instance is greater than or equal to c, 0 otherwise. int ═══ 2.3.5.5. MColor::operator<() ═══ operator<(const MColor &c) const const MColor &c Color to compare to Compares current color and pattern values (foreground and background) to those of c. The following precedence order is used: foreground pattern foreground red foreground greed foreground blue background pattern background red background greed background blue Returns 1 if the current instance is less than c, 0 otherwise. int ═══ 2.3.5.6. MColor::operator<=() ═══ operator<=(const MColor &c) const const MColor &c Color to compare to Compares current color and pattern values (foreground and background) to those of c. The following precedence order is used: foreground pattern foreground red foreground greed foreground blue background pattern background red background greed background blue Returns 1 if the current instance is less than or equal to c, 0 otherwise. int ═══ 2.4. MEditView ═══ editview.h is the source file for this class. This class inherits from MView Implements an edit view: a rectangular region within which text can be edited. Within the Mesa 2 application, an edit view is created whenever the user clicks in the Formula Bar. Within your custom applications, you can create an edit view and place it wherever you like. The edit view keeps track of its current contents and selection. The selection can be a single point, in which case a blinking insertion-point indicator is displayed at that point, or it can be one or more characters, in which case the selected characters are displayed with a gray background. Text entered by the user appears at the current position, replacing the selected characters (if any). The edit view also keeps track of what layer in the model is currently selected. Additionally, the following flags can be set within an MEditView instance:  ISEDITING Are we currently editing in an edit view?  ISSELECTING Are we currently selecting a region in the edit view?  JUSTUNDID Was the most recent operation an undo operation?  BLINKON Is the insertion point indicator currently being displayed? It also keeps track of the current context menu and the "superview" window, just like any other MView subclass (see MView). ═══ 2.4.1. Creating, destroying, and initializing an MEditView instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.4.1.1. MEditView::MEditView() ═══ MEditView(MWindow *, int = 0, MMesaModel *mp =0) MWindow * Parent window int Default is 0 MMesaModel *mp =0 The model associated with the edit view. Creates an MEditView instance with the values passed in. void ═══ 2.4.1.2. MEditView::~MEditView() ═══ ~MEditView() [virtual] Releases any string resources that have been allocated. void ═══ 2.4.1.3. MEditView::cleanUp() ═══ cleanUp() [virtual] Releases any strings that have been allocated, and passes the cleanUp() method to the parent window. void ═══ 2.4.1.4. MEditView::setUp() ═══ setUp(const MRect *, int=0) [virtual] const MRect * Rectangle to draw in int Style flags. Defaults to 0. Pass-through to MView::setUp(). Also, sets the cycle time for the blinking of the edit-view cursor, using MGController::ping(). void ═══ 2.4.2. Retrieving information about an MEditView instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.4.2.1. MEditView::bufferWindow() ═══ bufferWindow() [virtual] Is this window to be buffered (see MWindow::bufferWindow())? Always returns 1. int ═══ 2.4.2.2. MEditView::findChar() ═══ findChar(int x) [virtual] int x Position within the edit view (in pixels) Finds the character that is displayed at position x within the edit view. Returns position of that character within the edit view contents. For example, if the edit view contains the alphabet (ABCDEFGHIJKLMNOPQRSTUVWXYZ) in a fixed-width font where each character is 8 pixels wide, then findChar(6) will return 0 (the position of A in the alphabet) and findChar(70) will return 9 (the position of I in the alphabet). int ═══ 2.4.2.3. MEditView::getCurLayer() ═══ getCurLayer() [virtual] Returns the number of the currenty active layer within the currently active model. int ═══ 2.4.2.4. MEditView::getHasEdited() ═══ getHasEdited() [virtual] Returns value of ISEDITING. int ═══ 2.4.2.5. MEditView::getStart() ═══ getStart() [virtual] Returns the position within the edit-view contents of the first selected character. int ═══ 2.4.2.6. MEditView::getString() ═══ getString() [virtual] Returns edit-view contents. char * ═══ 2.4.2.7. MEditView::hasDrawSelf() ═══ hasDrawSelf() [virtual] Always returns 1, indicating that MEditView has a drawSelf() method (see MWindow::hasDrawSelf()). int ═══ 2.4.2.8. MEditView::isCellSelectOK() ═══ isCellSelectOK() [virtual] Returns 1 if pressing an arrow key within the edit view should enter a cell reference at that point in the edit view; returns 0 otherwise. int ═══ 2.4.2.9. MEditView::isEditingFormula() ═══ isEditingFormula() [virtual] Does the edit buffer contain a formula? This is determined by the presence of operators in the first character of the string, or @ followed by a letter (meaning a function name). Returns 1 if editing a formula, 0 otherwise. int ═══ 2.4.2.10. MEditView::rightOfOperator() ═══ rightOfOperator(const char *, int) [virtual] const char * int Is the cursor immediately to the right of an operator such as +, -, (, etc.? This method is used by MEditView::isCellSelectOK() to determine the behavior of arrow keys within the edit view. Returns 1 if cursor is to the right of an operator, 0 otherwise. int ═══ 2.4.3. Changing values in an MEditView instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.4.3.1. MEditView::setCurLayer() ═══ setCurLayer(int i) [virtual] int i Informs the edit view that the currently selected layer is i. This controls how the edit view handles creating range references and similar activities (see MEditView::toggleAbsolute()); it does not change the actual selection within the model. void ═══ 2.4.3.2. MEditView::setIsEditing() ═══ setIsEditing() [virtual] Sets ISEDITING flag and stores the current edit string for backup purposes. void setIsEditing(int i) [virtual] int i New value for ISEDITING (should be 0 or 1) Sets ISEDITING flag to i. void ═══ 2.4.4. Handling keyboard input to the edit view ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.4.4.1. MEditView::editGetDoSomething() ═══ editGetDoSomething(int, int) int Character entered int Key flags set (Ctrl, Alt, etc.) Determines whether the key-combination entered requires special processing. Returns 1 if it requires special processing, 0 otherwise. static int ═══ 2.4.4.2. MEditView::handleKey() ═══ handleKey(int, int) [virtual] int Character entered int Key flags set (Ctrl, Alt, etc.) Processes a keystroke. Normal characters are entered at the current position (replacing the current selection if any); some special characters perform special functions within the edit view (changing the value of arguments, selecting regions of text, etc.). Returns 0 if the key has been handled, 1 otherwise. int ═══ 2.4.5. Handling mouse input to the edit view ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.4.5.1. MEditView::mouse1Down() ═══ mouse1Down(const MPoint *, int, int &) [virtual] const MPoint * Point at which mouse was depressed int Key flags at that point (Ctrl, Alt, etc) int & Was it handled? 1 for yes, 0 for no. Translates the mouse position into a character position within the string, and sets the edit-view cursor to to that position. void ═══ 2.4.5.2. MEditView::mouse1MotionEnd() ═══ mouse1MotionEnd(int &) [virtual] int & Unused Turns off the ISSELECTING flag. void ═══ 2.4.5.3. MEditView::mouse1MotionStart() ═══ mouse1MotionStart(int &) [virtual] int & Was it handled? Will always be no. Sets the ISSELECTING flag, indicating that a range of characters in the edit view is currently being selected. Sets the first character of the selection (the anchor character) to the character where the mouse was initially pressed (see MEditView::mouse1MotionStart()), and updates the window. void ═══ 2.4.5.4. MEditView::mouse1Up() ═══ mouse1Up(const MPoint *, int, int &) [virtual] const MPoint * Point at which mouse was depressed int Key flags at that point int & Was it handled? 1 for yes, 0 for no. If ISSELECTING is set, passes a mouse1MotionEnd() method to the instance. void ═══ 2.4.5.5. MEditView::winButton1Click() ═══ winButton1Click(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Selects the character pointed at by the mouse. MRESULT ═══ 2.4.5.6. MEditView::winButton1DoubleClick() ═══ winButton1DoubleClick(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Selects the word pointed at by the mouse. MRESULT ═══ 2.4.5.7. MEditView::winChord() ═══ winChord(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND ULONG MPARAM MPARAM int & Selects the entire edit-view string. MRESULT ═══ 2.4.5.8. MEditView::winMouseMove() ═══ winMouseMove(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) If ISSELECTING is set, then the selection is reset to include the characters between the initial mouse-click location and the current mouse location. MRESULT ═══ 2.4.6. Selecting characters in the edit view ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.4.6.1. MEditView::selectArgs() ═══ selectArgs(int startPoint, int len) [virtual] int startPoint Offset from first character in edit-view string int len Maximum number of characters to select Finds and selects the argument list in the edit-view string after startPoint character of the edit-view string. If the argument list is more than len characters, nothing is selected. This method is used, for example, when a function is inserted into the edit view through the Formula Builder in Mesa. For example, if the edit view string is =INT(SQRT(LOG10(A5))), then selectArgs(2,20) will select the substring SQRT(LOG10(A5)), selectArgs(8,20) will select the substring LOG10(A5), and selectArgs(12,20) will select the substring A5. void ═══ 2.4.6.2. MEditView::selectRange() ═══ selectRange(int, int, int) [virtual] int Start of selection int End of selection int Position to make visible Sets the current selection, and scrolls the window (if necessary) to make the specified position visible. void ═══ 2.4.6.3. MEditView::selectText() ═══ selectText() [virtual] Selects the entire text of the edit buffer. void ═══ 2.4.6.4. MEditView::setEditRange() ═══ setEditRange(int, int, int=0) [virtual] int Start of selection int End of selection int = 0 Unused. Sets the start and end characters of the current selection within the edit view. void ═══ 2.4.7. Writing selected characters to clipboard ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.4.7.1. MEditView::copyToClipboard() ═══ copyToClipboard(MClipStream *) [virtual] MClipStream * Clipboard output stream Writes the contents of the current selection to the clipboard. void ═══ 2.4.8. Controlling the appearance of the edit view ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.4.8.1. MEditView::drawSelf() ═══ drawSelf(MDraw *, const MRect *) [virtual] MDraw * Region to draw into const MRect * Clipping rectangle Draws the contents of the edit window and highlights the selected area. Always returns 1 (see MWindow::drawSelf()). int ═══ 2.4.8.2. MEditView::scrollToVisible() ═══ scrollToVisible(int) [virtual] int Position of first character to make visible. -1 means make visible from beginning. Modifies the offset value to ensure that the given character position is visible on the screen. void ═══ 2.4.8.3. MEditView::setFont() ═══ setFont(const MFont *) [virtual] const MFont * New font Changes the display font of the edit view. void ═══ 2.4.8.4. MEditView::winPing() ═══ winPing(HWND, MPARAM, MPARAM) [virtual] HWND Unused MPARAM Unused MPARAM Unused If ISSELECTING is not set, updates the window. Starts another ping to repeat the process (see MEditView::setUp()). Always returns 1. MRESULT ═══ 2.4.9. Editing characters in the edit view ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.4.9.1. MEditView::insertAtStart() ═══ insertAtStart(const char *) [virtual] const char * Input string Replaces the current selection within the edit string (if any) with the given input string. (Compare with MEditView::insertRefAtStart().) void ═══ 2.4.9.2. MEditView::insertRefAtStart() ═══ insertRefAtStart(const char *) [virtual] const char * Input string Replaces the current selection within the edit string (if any) with the given input string, adding other characters as well based on the characters in the edit string before the current selection. (Compare with MEditView::insertAtStart().) If the cursor location is between a pair of parentheses and not preceded by a comma, then a comma is inserted before the input string (thereby treating the input string as the next argument within the parentheses). If the cursor location is preceded by a quotation mark then an ampersand is inserted before the input string (thereby treating the input string as string to be concatenated with the preceding string). Otherwise, the input string is preceded by a plus sign. void ═══ 2.4.9.3. MEditView::removeSelection() ═══ removeSelection() [virtual] Deletes the currently selected characters from the edit buffer. void ═══ 2.4.9.4. MEditView::pasteInto() ═══ pasteInto(MClipStream *) [virtual] MClipStream * The input stream. Places the contents of the clipboard (if Mesa 2 or ASCII format) into the edit string at the current selection point, replacing the currently selected characters (if any). void ═══ 2.4.9.5. MEditView::setString() ═══ setString(const char *) [virtual] const char * String to store in edit buffer Changes the string in the edit buffer to the string passed in, resets the selection, and updates the window. void ═══ 2.4.9.6. MEditView::toggleAbsolute() ═══ toggleAbsolute() [virtual] If the current region selected within the edit view is a range reference (e.g.; A1:D5) or a cell reference (e.g.; B7), or if there is no region selected but the cursor is within a range or cell reference, then the reference is cycled through the various combinations of absolute and relative status (see MAddress) in the following order: all relative absolute row absolute column absolute row and column absolute layer absolute row and layer absolute column and layer all absolute If no layer reference is included in the string, then the current layer is used (see MEditView::getCurLayer()). This method is generally associated with the F4 key within Mesa. For example, if the currently selected region is the substring D5 and the current layer is 3, repeated uses of toggleAbsolute() will replace the substring with D$5, $D5, $D$5, [$D]D5, [$D]D$5, [$D]$D5, [$D]$D$5, [D]D5. (Note that at the end of the cycle, an explicit relative layer reference has been added (that is, D5 has changed to [D]D5). This has no real effect, since the D5 syntax includes an implicit relative reference to the current layer, and the two strings are parsed equivalently. void ═══ 2.4.10. Undoing and redoing edits ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.4.10.1. MEditView::undo() ═══ undo() [virtual] Restores the value of the edit string from the undo buffer, selects the entire string, and sets the JUSTUNDID flag. void ═══ 2.4.10.2. MEditView::redo() ═══ redo() [virtual] Replaces the current edit string with the contents of a temporary "undo" buffer (see MEditView::undo()). Also places the current edit string contents in the undo buffer. void ═══ 2.5. MException ═══ exception.h is the source file for this class. Stores an application-defined error. Can be expanded to include warnings and other kinds of exceptions. Your application's controller should implement some method for dealing with or displaying MExceptions, such as redirecting them to an output file or displaying their contents in a message box (see MGController::displayException()=0). Each MException holds an error code and an associated error string (see "Error constants"). It also contains an optional list of warnings and an optional list of error-location values (values relating to the location at which an error occured) which are not currently used for anything, but can be set and read from within your application. ═══ 2.5.1. Creating, destroying, and initializing an MException instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.5.1.1. MException::MException() ═══ MException() Initializes the exception. void ═══ 2.5.1.2. MException::~MException() ═══ ~MException() Destroys the exception. void ═══ 2.5.1.3. MException::_init() ═══ _init() Initializes the exception. void ═══ 2.5.1.4. MException::_destroy() ═══ _destroy() Releases any warnings, error messages, etc., before destroying the exception. void ═══ 2.5.2. Retrieving information about an MException instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.5.2.1. MException::getError() ═══ getError() const If there is no error in this exception, returns noError (see "Error constants"); otherwise, returns the error code. int ═══ 2.5.2.2. MException::getErrorPlaces() ═══ getErrorPlaces(int i) const int i Index into error-locations list Returns the given error-location value (see MException). int ═══ 2.5.2.3. MException::getErrorText() ═══ getErrorText() const Returns the error string (see "Error constants"). char * ═══ 2.5.2.4. MException::getWarning() ═══ getWarning(int) const int Index into warnings list Returns the given warning ID (see MException). int ═══ 2.5.2.5. MException::getWarningCnt() ═══ getWarningCnt() const Returns size of warnings list. int ═══ 2.5.2.6. MException::getWarningText() ═══ getWarningText(int) const int Index into warnings list Returns the given warning text. char * ═══ 2.5.2.7. MException::isError() ═══ isError() const If there is no error in this exception, returns noError (see "Error constants"); otherwise, returns the error code. Identical to MException::isError(). int ═══ 2.5.3. Changing values in an MException instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.5.3.1. MException::addWarning() ═══ addWarning(int, const char * = (const char *) NULL) int Warning ID const char * Warning text. Defaults to NULL pointer. Adds warning to the warning list. void ═══ 2.5.3.2. MException::setError() ═══ setError(int, const char * = (const char *) NULL) int Error ID const char * Error message. Defaults to NULL pointer. Sets the error ID and text of the current exception. void ═══ 2.5.3.3. MException::setErrorPlaces() ═══ setErrorPlaces(int, int) int i Index to error-locations list int value Error-location value Sets the given element of the error-locations list to value. void ═══ 2.5.3.4. MException::setOSError() ═══ setOSError(int) int Error ID Sets the error value to one of a set of operating-system-specific error messages (see "Error constants"), and the error text to NULL. (Compare with MException::setError().) void ═══ 2.5.3.5. MException::setRexxError() ═══ setRexxError(int) int Error ID Sets the error value to one of a set of REXX-specific error messages (see "Error constants") and the error text to NULL. (Compare with MException::setError().) void ═══ 2.6. MFileStream ═══ filestream.h is the source file for this class. This class inherits from MStream Abstracts the OS/2 file system and allows data to be written to or read from disk. Each MFileStream instance keeps track of its current position within the file and maintains a local cache buffer for faster file handling. It also keeps track of whether it is an input stream (MSTREAM_READ) or an output stream (MSTREAM_WRITE). Like all other MStream subclasses, it also keeps track of current and next-element stream positions, allocates storage for any errors that may occur, and maintains a version number. For more information, see "MStream". ═══ 2.6.1. Creating, destroying, and initializing an MFileStream instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.6.1.1. MFileStream::MFileStream() ═══ MFileStream(int, const char *) int Stream type (MSTREAM_READ or MSTREAM_WRITE) const char * File name associated with the stream. Creates an MFileStream instance variable of a given type, and associates it with the given filename. void ═══ 2.6.1.2. MFileStream::~MFileStream() ═══ ~MFileStream() [virtual] Closes the associated file and frees all allocated resources. If file-system errors are encountered the appropriate error ID is placed in the exception handler. void ═══ 2.6.2. Reading and writing the file ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.6.2.1. MFileStream::read()=0 ═══ read(void *, int numBytes) = 0 [virtual] void * Pointer to storage buffer int numBytes Number of bytes to be read into buffer. Attempts to read numBytes bytes from the file into the given storage buffer. Returns actual number of bytes read. int ═══ 2.6.2.2. MFileStream::write() ═══ write(const void *, int) [virtual] const void *buf Buffer containing bytes to output int N Number of bytes to write Writes N bytes from buf to the associated file. For performance reasons, write() will simply edit the contents of the local cache if N does not exceed the cache size. Returns actual number of bytes written. int ═══ 2.6.3. Setting file attributes ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.6.3.1. MFileStream::setAttributes() ═══ setAttributes(const char *fileType) [virtual] const char *fileType Type of file, in null-terminated string format Sets the OS/2 extended-attribute .TYPE parameter to fileType. For example, setAttributes("123 DOS Spreadsheet") will set the extended-attribute .TYPE parameter of the associated file to 123 DOS Spreadsheet (the Lotus(TM) .WK1 format), and setAttributes("Mesa Workbook File") will set the extended-attribute .TYPE parameter of the associated file to MesaWorkbook File (the Mesa(TM) .M2 format). void ═══ 2.6.3.2. MFileStream::setMesaAttributes() ═══ setMesaAttributes() [virtual] Sets the OS/2 extended-attribute .TYPE parameter to Mesa Workbook File. (Compare with MFileStream::setAttributes().) void ═══ 2.6.4. Querying the file ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.6.4.1. MFileStream::isEOF() ═══ isEOF() [virtual] Returns 1 if the current file position is the end of the file, 0 otherwise. int ═══ 2.6.4.2. MFileStream::getPos() ═══ getPos() [virtual] Returns the current file position. int ═══ 2.6.5. Navigating within the stream ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.6.5.1. MFileStream::getStreamLen() ═══ getStreamLen() [virtual] Returns the length of the stream. int ═══ 2.6.5.2. MFileStream::seek() ═══ seek(int newPos) [virtual] int newPos New file position Sets the current file position to newPos. Returns new file position. int ═══ 2.6.6. Related Function: ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.6.6.1. MFileStream::makeBackup() ═══ makeBackup(const char *, const char *) const char * Filename const char * Extension Makes a backup of the given filename by creating a duplicate, deleting the file, and renaming the given file to the backup name. The default backup extension is M2B. void ═══ 2.7. MFont ═══ font.h is the source file for this class. Stores font family, size, and typeface information for a single font instance. Each model maintains an MFont array representing the font/size/typeface combinations that have been used within the model. Generally speaking, methods that deal with fonts can accept an integer index into the MFont array. For more information, see "MMesaModel contents". Each MFont instance stores a font name, like "Helvetica bold italic", and a font size (in points). ═══ 2.7.1. Creating, destroying, and initializing an MFont instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.7.1.1. MFont::free() ═══ free() Releases all allocated resources, such as the font name. void ═══ 2.7.1.2. MFont::init() ═══ init() Initializes the MFont instance to the default font (12.Helv). void init(MStream *st) MStream *st Input stream Initializes the MFont instance to values read from st (see MStream). void init(const MFont *font) const MFont *font Font to initialize from Initializes the MFont instance to values read from font. void init(const char *) const char * OS/2 font name Initialize the MFont instance from an OS/2 format font specifier (i.e. "8.Helv"). void ═══ 2.7.2. Retrieving information about an MFont instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.7.2.1. MFont::getName() ═══ getName() const Returns font name. const char * ═══ 2.7.2.2. MFont::getSize() ═══ getSize() const Returns font size (in points). int ═══ 2.7.2.3. MFont::getSystemName() ═══ getSystemName(char * buf) char *buf Storage location Loads font name and size into buf, in OS/2 font specifier format (e.g.; "8.Helv"). void ═══ 2.7.2.4. MFont::isBold() ═══ isBold() A font is bold if it has " bold" in its name. Returns 1 if the font is bold, 0 otherwise. int ═══ 2.7.2.5. MFont::isItalic() ═══ isItalic() A font is italic if it has " italic" in its name. Returns 1 if the font is italic, 0 otherwise. int ═══ 2.7.3. Changing values in an MFont instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.7.3.1. MFont::makeBold() ═══ makeBold(int) int Make bold or unbold? 1 for bold, 0 for normal Forces font to bold (if 1) or normal weight (if 0). void ═══ 2.7.3.2. MFont::makeItalic() ═══ makeItalic(int) int Make italic or normal? 1 for italic, 0 for normal Forces font to italic (if 1) or normal angle (if 0). void ═══ 2.7.3.3. MFont::makePlain() ═══ makePlain(int) int Not currently used. Removes bold and italic attributes from the current font. void ═══ 2.7.3.4. MFont::setName() ═══ setName(const char *) const char * New font name Sets the font name to the value passed in. void ═══ 2.7.3.5. MFont::setSize() ═══ setSize(int) int New size value Sets the font size to the value passed in. void ═══ 2.7.4. Outputting an MFont instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.7.4.1. MFont::write() ═══ write(MStream *st) const MStream *st Output stream Outputs the values of the font instance to st (see MStream). void ═══ 2.7.5. MFont operators ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.7.5.1. MFont::operator=() ═══ operator=(const MFont &) const MFont & MFont instance to assign to Sets the current instance equal to the MFont passed in. Returns current MFont instance. MFont & operator=(const MFont *) const MFont * MFont instance to assign to Sets the current instance equal to the MFont passed in. Returns current MFont instance. MFont & ═══ 2.7.5.2. MFont::operator==() ═══ operator==(const MFont &f) const const MFont & MFont instance to compare to Returns 1 if the two fonts have the same size and font name; 0 otherwise. int ═══ 2.8. MFormat ═══ format.h is the source file for this class. Stores formatting information that controls how a cell's contents are displayed. Each Mesa model contains an array of known formats, and whenever a new formatting combination is created, an associated MFormat instance is created and added to that list. Each cell in a model contains an index into that list, which is used to determine how the cell is displayed. For more information, see "MMesaModel". Among the bits of information stored within an MFormat instance are:  display format ID, degree of precision, and hidden status (see "Display format constants")  vertical and horizontal alignment (see "Alignment constants")  input protection status (see "Input type constants")  colors of text and background (see MColor), including clear vs. opaque background A format can contain either a clear background or an opaque background. The distinction is usually irrelevant; however, if a cell containing a clear background is displayed above some other object (e.g.; a graph), then the other object can be seen underneath it. If the cell contains an opaque background, the other object cannot be seen.  colors and widths of borders (see "Border constants")  font, typeface, and size (see MFont)  underlining Additionally, each piece of information has a merge flag associated with it. In general, to alter the properties of an existing MFormat instance, you first create a new MFormat instance with the values you want to change, set the merge flags for those properties, then merge the new instance into the existing instance through MFormat::mergeFormat(). ═══ 2.8.1. Creating, destroying, and initializing an MFormat instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.8.1.1. MFormat::free() ═══ free() Releases all allocated resources. void ═══ 2.8.1.2. MFormat::init() ═══ init() Initializes the instance to appropriate default values. void init(const MFormat *fm) const MFormat *fm An existing MFormat instance from which to initialize Initializes the instance with values from fm. void init(MStream *st) MStream *st Input stream. Initializes the instance with values from st (see MStream). void ═══ 2.8.2. Retrieving information about an MFormat instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.8.2.1. MFormat::getAlignment() ═══ getAlignment() const Returns horizontal alignment (see "Alignment constants"). int ═══ 2.8.2.2. MFormat::getBkgColor() ═══ getBkgColor() const Returns background color (see MColor). MColor ═══ 2.8.2.3. MFormat::getBorder() ═══ getBorder(int) const int Which border? Returns width of the given border (see "Border constants"), in pixels. int ═══ 2.8.2.4. MFormat::getBorderColor() ═══ getBorderColor(int) const int Which border? Returns color of the given border (see "Border constants"). MColor ═══ 2.8.2.5. MFormat::getClearBkg() ═══ getClearBkg() const Returns 1 if the background is clear, 0 otherwise. int ═══ 2.8.2.6. MFormat::getFont() ═══ getFont() const Returns an index into the MFont array maintained by the model, indicating the font/typeface/size of the current format. For more information, see "MFont". int ═══ 2.8.2.7. MFormat::getFormat() ═══ getFormat() const Returns the display format ID (eg; dateYYMMDDFormat, timeHM24Format, etc.). For more information, see "Display format constants". int ═══ 2.8.2.8. MFormat::getFormatSansPrec() ═══ getFormatSansPrec() const Returns display format specifier, consolidating numeric formats. For more information, see "Display format constants". int ═══ 2.8.2.9. MFormat::getHidden() ═══ getHidden() const Returns 1 if the format is hidden, 0 otherwise. For more information, see "Display format constants". int ═══ 2.8.2.10. MFormat::getInputType() ═══ getInputType() const Returns input type specifier, which determines what kind of values can be entered. For more information, see "Input type constants". int ═══ 2.8.2.11. MFormat::getPrecision() ═══ getPrecision() const Returns degree of precision (see "Display format constants"). int ═══ 2.8.2.12. MFormat::getProtected() ═══ getProtected() const Returns 1 if the format is protected, 0 otherwise (see "Input type constants"). int ═══ 2.8.2.13. MFormat::getTextColor() ═══ getTextColor() const Returns color of text display. MColor ═══ 2.8.2.14. MFormat::getUnderline() ═══ getUnderline() const Returns underline setting (see "Underline constants"). int ═══ 2.8.2.15. MFormat::getVertAlign() ═══ getVertAlign() const Returns vertical alignment (see "Alignment constants"). int ═══ 2.8.2.16. MFormat::getWrap() ═══ getWrap() const Returns 1 if word-wrapping is enabled, 0 otherwise (see "Alignment constants"). int ═══ 2.8.2.17. MFormat::hasBorders() ═══ hasBorders() const Returns 1 if any borders are set to non-zero widths; 0 otherwise. int ═══ 2.8.3. Retrieving merge flags from an MFormat instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.8.3.1. MFormat::getMergeAlignment() ═══ getMergeAlignment() const Returns 1 if the merge operation will include the horizontal alignment, 0 otherwise. int ═══ 2.8.3.2. MFormat::getMergeBkgColor() ═══ getMergeBkgColor() const Returns 1 if the merge operation will include the background color, 0 otherwise. int ═══ 2.8.3.3. MFormat::getMergeBorder1() ═══ getMergeBorder1() const Returns 1 if the merge operation will include left border width, 0 otherwise. int ═══ 2.8.3.4. MFormat::getMergeBorder2() ═══ getMergeBorder2() const Returns 1 if the merge operation will include right border width, 0 otherwise. int ═══ 2.8.3.5. MFormat::getMergeBorder3() ═══ getMergeBorder3() const Returns 1 if the merge operation will include top border width, 0 otherwise. int ═══ 2.8.3.6. MFormat::getMergeBorder4() ═══ getMergeBorder4() const Returns 1 if the merge operation will include bottom border width, 0 otherwise. int ═══ 2.8.3.7. MFormat::getMergeBorderColor1() ═══ getMergeBorderColor1() const Returns 1 if the merge operation will include left border color, 0 otherwise. int ═══ 2.8.3.8. MFormat::getMergeBorderColor2() ═══ getMergeBorderColor2() const Returns 1 if the merge operation will include right border color, 0 otherwise. int ═══ 2.8.3.9. MFormat::getMergeBorderColor3() ═══ getMergeBorderColor3() const Returns 1 if the merge operation will include top border color, 0 otherwise. int ═══ 2.8.3.10. MFormat::getMergeBorderColor4() ═══ getMergeBorderColor4() const Returns 1 if the merge operation will include bottom border color, 0 otherwise. int ═══ 2.8.3.11. MFormat::getMergeFont() ═══ getMergeFont() const Returns 1 if the merge operation will include the font, 0 otherwise. int ═══ 2.8.3.12. MFormat::getMergeFormat() ═══ getMergeFormat() const Returns 1 if the merge operation will include the display format ID, 0 otherwise. int ═══ 2.8.3.13. MFormat::getMergeHidden() ═══ getMergeHidden() const Returns 1 if the merge operation will include the hidden status, 0 otherwise. int ═══ 2.8.3.14. MFormat::getMergeInputType() ═══ getMergeInputType() const Returns 1 if the merge operation will include the input type, 0 otherwise. int ═══ 2.8.3.15. MFormat::getMergePrecision() ═══ getMergePrecision() const Returns 1 if the merge operation will include the precision status, 0 otherwise. int ═══ 2.8.3.16. MFormat::getMergeProtected() ═══ getMergeProtected() const Returns 1 if the merge operation will include the protected status, 0 otherwise. int ═══ 2.8.3.17. MFormat::getMergeTextColor() ═══ getMergeTextColor() const Returns 1 if the merge operation will include the text color, 0 otherwise. int ═══ 2.8.3.18. MFormat::getMergeScriptOnInput() ═══ getMergeScriptOnInput() const Returns 1 if the merge operation will include the script to run on user-input, 0 otherwise. int ═══ 2.8.3.19. MFormat::getMergeUnderline() ═══ getMergeUnderline() const Returns 1 if the merge operation will include the underline status, 0 otherwise. int ═══ 2.8.3.20. MFormat::getMergeVertAlign() ═══ getMergeVertAlign() const Returns 1 if the merge operation will include the vertical alignment status, 0 otherwise. int ═══ 2.8.3.21. MFormat::getMergeWrap() ═══ getMergeWrap() const Returns 1 if the merge operation will include the word-wrap status, 0 otherwise. int ═══ 2.8.4. Setting merge flags in an MFormat instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.8.4.1. MFormat::setMergeAlignment() ═══ setMergeAlignment(int i) int i 1 to merge, 0 to not merge Sets the merge flag for horizontal alignment. void ═══ 2.8.4.2. MFormat::setMergeBkgColor() ═══ setMergeBkgColor(int i) int i 1 to merge, 0 to not merge Sets the merge flag for background color. void ═══ 2.8.4.3. MFormat::setMergeBorder1() ═══ setMergeBorder1(int i) int i 1 to merge, 0 to not merge Sets the merge flag for the left border width. void ═══ 2.8.4.4. MFormat::setMergeBorder2() ═══ setMergeBorder2(int i) int i 1 to merge, 0 to not merge Sets the merge flag for the right border width. void ═══ 2.8.4.5. MFormat::setMergeBorder3() ═══ setMergeBorder3(int i) int i 1 to merge, 0 to not merge Sets the merge flag for the top border width. void ═══ 2.8.4.6. MFormat::setMergeBorder4() ═══ setMergeBorder4(int i) int i 1 to merge, 0 to not merge Sets the merge flag for the bottom border width. void ═══ 2.8.4.7. MFormat::setMergeBorderColor1() ═══ setMergeBorderColor1(int i) int i 1 to merge, 0 to not merge Sets the merge flag for the left border color. void ═══ 2.8.4.8. MFormat::setMergeBorderColor2() ═══ setMergeBorderColor2(int i) int i 1 to merge, 0 to not merge Sets the merge flag for the right border color. void ═══ 2.8.4.9. MFormat::setMergeBorderColor3() ═══ setMergeBorderColor3(int i) int i 1 to merge, 0 to not merge Sets the merge flag for the top border color. void ═══ 2.8.4.10. MFormat::setMergeBorderColor4() ═══ setMergeBorderColor4(int i) int i 1 to merge, 0 to not merge Sets the merge flag for the bottom border color. void ═══ 2.8.4.11. MFormat::setMergeFont() ═══ setMergeFont(int i) int i 1 to merge, 0 to not merge Sets the merge flag for the font. void ═══ 2.8.4.12. MFormat::setMergeFormat() ═══ setMergeFormat(int i) int i 1 to merge, 0 to not merge Sets the merge flag for the display format ID. void ═══ 2.8.4.13. MFormat::setMergeHidden() ═══ setMergeHidden(int i) int i 1 to merge, 0 to not merge Sets the merge flag for hidden status. void ═══ 2.8.4.14. MFormat::setMergeInputType() ═══ setMergeInputType(int i) int i 1 to merge, 0 to not merge Sets the merge flag for input type. void ═══ 2.8.4.15. MFormat::setMergePrecision() ═══ setMergePrecision(int i) int i 1 to merge, 0 to not merge Sets the merge flag for precision. void ═══ 2.8.4.16. MFormat::setMergeProtected() ═══ setMergeProtected(int i) int i 1 to merge, 0 to not merge Sets the merge flag for protected status. void ═══ 2.8.4.17. MFormat::setMergeTextColor() ═══ setMergeTextColor(int i) int i 1 to merge, 0 to not merge Sets the merge flag for text color. void ═══ 2.8.4.18. MFormat::setMergeUnderline() ═══ setMergeUnderline(int i) int i 1 to merge, 0 to not merge Sets the merge flag for underline setting. void ═══ 2.8.4.19. MFormat::setMergeVertAlign() ═══ setMergeVertAlign(int i) int i 1 to merge, 0 to not merge Sets the merge flag for vertical alignment. void ═══ 2.8.4.20. MFormat::setMergeWrap() ═══ setMergeWrap(int i) int i 1 to merge, 0 to not merge Sets the merge flag for word-wrapping status. void ═══ 2.8.5. Changing values in an MFormat instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.8.5.1. MFormat::mergeFormat() ═══ mergeFormat(const MFormat &fm) const MFormat &fm Source MFormat instance to be merged into current instance Sets some, though not all, of the properties of the current MFormat instance to the values of those properties within fm. Only those properties for which the associated merge flag has been set in fm are changed. void ═══ 2.8.5.2. MFormat::setAlignment() ═══ setAlignment(int) int New horizontal alignment. Sets horizontal alignment (see "Alignment constants"). void ═══ 2.8.5.3. MFormat::setBkgColor() ═══ setBkgColor(int) int Color constant Sets background to the given color (see "Color constants"). void setBkgColor(MColor) MColor MColor instance Sets background color identical to the given MColor (see MColor). void ═══ 2.8.5.4. MFormat::setBorder() ═══ setBorder(int, int) int Which border? int Size of border Sets the given border to the given width (see "Border constants"). void ═══ 2.8.5.5. MFormat::setBorderColor() ═══ setBorderColor(int, MColor) int Which border MColor New color Sets the given border to the given color (see "Border constants"). void ═══ 2.8.5.6. MFormat::setClearBkg() ═══ setClearBkg(int clr) int clr Clear (1) or opaque (0)? Sets the background clear or opaque based on the value of clr. void ═══ 2.8.5.7. MFormat::setFont() ═══ setFont(int N) int N Index into MFont array Sets the font to the Nth item in the model's MFont array. For more information, see "MFont". void ═══ 2.8.5.8. MFormat::setFormat() ═══ setFormat(const char *, int) const char * Name of new display format int New precision Looks up the display format ID for the named display format, and sets the display and precision accordingly (see "Display format constants"). Returns 1 if the named display format actually exists, 0 otherwise. int setFormat(int) int New display format ID Sets the display format ID and precision to the values passed in (see "Display format constants"). void ═══ 2.8.5.9. MFormat::setHidden() ═══ setHidden(int) int New hidden status (TRUE for hidden, FALSE for unhidden) Sets hidden status (see "Display format constants"). void ═══ 2.8.5.10. MFormat::setInputType() ═══ setInputType(int) int New input type Sets input type (see "Input type constants"). void ═══ 2.8.5.11. MFormat::setPrecision() ═══ setPrecision(int) int New precision Sets precision (see "Display format constants"). void ═══ 2.8.5.12. MFormat::setProtected() ═══ setProtected(int) int 1 for protected, 0 for unprotected. Sets protection status (see "Input type constants"). void ═══ 2.8.5.13. MFormat::setTextColor() ═══ setTextColor(int col) int col New color for text Sets the text color to col, where col is a packed data structure of the form r<<16 + g <<8 + b. void setTextColor(MColor) MColor New MColor instance for text Sets the text color to the value passed in. void ═══ 2.8.5.14. MFormat::setUnderline() ═══ setUnderline(int) int New underline value Sets underline setting to the value passed in (see "Underline constants"). void ═══ 2.8.5.15. MFormat::setVertAlign() ═══ setVertAlign(int) int New vertical alignment setting Sets vertical alignment (see "Alignment constants"). void ═══ 2.8.5.16. MFormat::setWrap() ═══ setWrap(int) int 1 for word-wrap, 0 for no word-wrap Turns word-wrapping on or off. void ═══ 2.8.6. Outputting an MFormat instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.8.6.1. MFormat::write() ═══ write(MStream *st) MStream *st Output stream Outputs the format to st (see MStream). void ═══ 2.8.7. MFormat operators ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.8.7.1. MFormat::operator==() ═══ operator==(const MFormat &mf) const const MFormat & MFormat instance to compare to Returns 1 if all properties of the two formats are identical, 0 otherwise. Ignores merge flags. int ═══ 2.9. MFrameXfer ═══ xfer.h is the source file for this class. This class inherits from MObject Stores information about a Mesa graphic object (for example, a graph or a geometric shape),otherwise known as a frame. Mesa frames are represented by some subclass of MFrame, and each model maintains a list of existing frames (see MMesaModel). An MFrameXfer instance is used to query the properties of an existing frame by means of various accessor member functions. It can also be merged with an existing frame, thereby altering the frame's properties. MFrameXfer is almost completely made up of accessor and initializer member functions. ═══ 2.9.1. Contents of a frame ═══ Open the Contents view and expand this section to see a list of methods. Each frame can contain the following information, which can be accessed and altered through an MFrameXfer instance:  Frame type (see "Frame constants")  Name Each frame is automatically named "Graph #" when it is created, where # is the next available number. That is, the first three frames created within a model will be automatically named "Graph 1", "Graph 2", and "Graph 3".  Location and size (see MRect)  Z-order - if multiple frames overlap one another, which one is drawn on top?  Border width and color (if a graph, border width also controls several other line widths)  Background color (see MColor)  Anchor cell (every frame is associated with a single cell in the model; A1 by default)  Should the frame execute a REXX script when selected? If so, what's the script? If the frame is a graph, the following additional data is available:  The range being graphed, its orientation (see "Graph orientation constants"), how many X axes it contains (single or multiple), and whether it contains headings as well as data.  What color are the axes? Note that while many axis elements are controllable separately for the X and Y axis (see below), the two axes are treated as a single element for color and font purposes.  How many graph elements (e.g.; columns) are there to draw?  Should a legend be drawn? If so, where (see "Graph legend constants"), and what should it look like (foreground and background color, font, etc.)?  Should a title and/or subtitle be included? If so, what should they look like (colors, fonts, etc.)?  If a line or scatter graph, should the lines be drawn, or just the points, or both?  Widths of bars and columns If the graph contains axes (e.g; a bar graph), the following additional data is available for each axis:  Does it have a title? If so, what should it look like (foreground and background color, font, etc.)?  Where is it located (e.g.; is the Y axis at the left, the right, or the zero-point of the X axis)?  What are the sizes and locations of ticks on this axis? Each axis contains major ticks and minor ticks, the length and alignment of which is user-customizable, and the location of which is derived from the data being graphed.  Are there gridlines drawn from the ticks on this axis? If so, from which ticks and in what color?  What are the minimum and maximum values that appear on the axis? Is it linear or logarythmic?  Where are the axis labels drawn from? What should they look like (rotation, display format, etc.)? If the frame is a three-dimensional graph, the following additional data is available:  Background color for the three-dimensional "wall".  Should the graph elements be drawn in solid colors or as "wire frame" outlines? Additionally, every MFrameXfer instance contains a merge flag for each of the abovementioned properties, which controls whether or not that property is changed when an MFrameXfer instance is merged with an MFrame instance. Whenever the value of an MFrameXfer property is set, the merge flag for that property is also set. ═══ 2.9.2. Creating, destroying, and initializing an MFrameXfer instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.2.1. MFrameXfer::MFrameXfer() ═══ MFrameXfer(MStream *st) MStream *st Input stream Creates a new MFrameXfer instance with values read from st (see MStream). void MFrameXfer() Creates a new MFrameXfer instance with default values. void MFrameXfer(const MFrameXfer *) const MFrameXfer * Creates a new MFrameXfer instance with values read from the instance passed in. void ═══ 2.9.2.2. MFrameXfer::~MFrameXfer() ═══ ~MFrameXfer() [virtual] Destroys the instance and frees all allocated resources. void ═══ 2.9.3. Identifying the frame type ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.3.1. MFrameXfer::getFrameClass() ═══ getFrameClass() const [virtual] Returns the type of frame (see "Frame constants"). int ═══ 2.9.3.2. MFrameXfer::isChartClass() ═══ isChartClass() const [virtual] Returns 1 if the frame is a graph, 0 otherwise (see "Frame constants"). int ═══ 2.9.3.3. MFrameXfer::isImageClass() ═══ isImageClass() const [virtual] Returns 1 if the frame is an imported bitmap, 0 otherwise (see "Frame constants"). int ═══ 2.9.3.4. MFrameXfer::isShapeClass() ═══ isShapeClass() const [virtual] Returns 1 if the frame is a shape, 0 otherwise (see "Frame constants"). int ═══ 2.9.4. Setting the frame type ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.4.1. MFrameXfer::setFrameClass() ═══ setFrameClass(int i) [virtual] int i Sets the type of frame (see "Frame constants"). void ═══ 2.9.5. Retrieving general information about a generic frame ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.5.1. MFrameXfer::getAnchor() ═══ getAnchor() const [virtual] Returns address of the anchor cell. const MAddress * ═══ 2.9.5.2. MFrameXfer::getBkgColor() ═══ getBkgColor() const [virtual] Returns background color of the frame. const MColor * ═══ 2.9.5.3. MFrameXfer::getBorderCol() ═══ getBorderCol() const [virtual] Returns border color of the frame. const MColor * ═══ 2.9.5.4. MFrameXfer::getFrameColor() ═══ getFrameColor() const [virtual] Returns foreground color of the frame. const MColor * ═══ 2.9.5.5. MFrameXfer::getName() ═══ getName() const [virtual] Returns the name of the frame. const char * ═══ 2.9.5.6. MFrameXfer::getPos() ═══ getPos() const [virtual] Returns the location and size of the frame. const MRect * ═══ 2.9.5.7. MFrameXfer::getScript() ═══ getScript() const [virtual] Returns the text of the REXX script to be executed. const char * ═══ 2.9.5.8. MFrameXfer::getFrameSize() ═══ getFrameSize() const [virtual] Returns the width of the line drawn as the frame, in pixels. int ═══ 2.9.5.9. MFrameXfer::getOrder() ═══ getOrder() const [virtual] Returns the Z-order of the frame. int ═══ 2.9.6. Retrieving general information about a graph frame ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.6.1. MFrameXfer::getGraphElements() ═══ getGraphElements() const [virtual] Returns a list of the elements to be drawn in the frame, if any (e.g.; rows, columns, legends, etc.), and information regarding the appearance of each element (see MFrameXfer). For more information, see "MGraphElement". MGraphElement * ═══ 2.9.6.2. MFrameXfer::getLegendInfo() ═══ getLegendInfo() const [virtual] Returns information regarding the appearance of the legend, if one exists. For more information, see "MGraphElement". const MGraphElement * ═══ 2.9.6.3. MFrameXfer::getRange() ═══ getRange() const [virtual] Returns the range of data being graphed. const MRange * ═══ 2.9.6.4. MFrameXfer::getTitleInfo() ═══ getTitleInfo(int x) const [virtual] int x Which title? Returns information regarding the appearance of the given title. A graph frame can include up to four titles (see "Graph title constants"). For more information, see "MGraphElement". const MGraphElement * ═══ 2.9.6.5. MFrameXfer::getTitles() ═══ getTitles(int x) const [virtual] int x Which title? Returns the text of the given title. A graph frame can include up to four titles (see "Graph title constants"). const char * ═══ 2.9.6.6. MFrameXfer::getBarColWid() ═══ getBarColWid() const [virtual] Returns the width of a bar or column. int ═══ 2.9.6.7. MFrameXfer::getGraphBorder() ═══ getGraphBorder() const [virtual] Returns 1 if there is a border around the graph, 0 otherwise. int ═══ 2.9.6.8. MFrameXfer::getLegendPosition() ═══ getLegendPosition() const [virtual] Returns the position of the legend (see "Graph legend constants"). int ═══ 2.9.6.9. MFrameXfer::getLineWid() ═══ getLineWid() const [virtual] Returns the width of the line to be drawn in a line graph. int ═══ 2.9.6.10. MFrameXfer::getNumElements() ═══ getNumElements() const [virtual] Returns the number of elements included in the graph. int ═══ 2.9.6.11. MFrameXfer::getOrientation() ═══ getOrientation() const [virtual] Returns the orientation of the data to be graphed (see "Graph orientation constants"). int ═══ 2.9.6.12. MFrameXfer::getShowLine() ═══ getShowLine() const [virtual] Returns 1 if the line should be drawn on a line/scatter graph, 0 otherwise. int ═══ 2.9.6.13. MFrameXfer::getShowPoint() ═══ getShowPoint() const [virtual] Returns 1 if the points should be drawn on a line/scatter graph, 0 otherwise. int ═══ 2.9.6.14. MFrameXfer::getSideTitles() ═══ getSideTitles() const [virtual] Returns 1 if the range being graphed includes headings in the first row (if graph is oriented by column) or in the first column (if graph is oriented by row), 0 otherwise (see "Graph orientation constants"). int ═══ 2.9.6.15. MFrameXfer::getSingleXRange() ═══ getSingleXRange() const [virtual] Returns 1 if the X values in an X-Y graph are to drawn from only the first data series (a column or row of data); returns 0 if alternating X and Y data series are used. int ═══ 2.9.6.16. MFrameXfer::getTopTitles() ═══ getTopTitles() const [virtual] Returns 1 if the range being graphed includes headings in the first row (if graph is oriented by row) or in the first column (if graph is oriented by column), 0 otherwise (see "Graph orientation constants"). int ═══ 2.9.7. Retrieving X and Y axis information about a graph frame ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.7.1. MFrameXfer::getAxisInfo() ═══ getAxisInfo() const [virtual] Returns information regarding the appearance of the combined X and Y axes. const MGraphElement * ═══ 2.9.7.2. MFrameXfer::getDisplayFormat() ═══ getDisplayFormat(int i) const [virtual] int i Which axis? Returns the display format for the labels for the given axis. int ═══ 2.9.7.3. MFrameXfer::getMaxX() ═══ getMaxX() const [virtual] Returns the highest value to be graphed on the X axis. double ═══ 2.9.7.4. MFrameXfer::getMaxY() ═══ getMaxY() const [virtual] Returns highest value to be graphed on the Y axis. double ═══ 2.9.7.5. MFrameXfer::getMinX() ═══ getMinX() const [virtual] Returns the lowest value to be graphed on the X axis. double ═══ 2.9.7.6. MFrameXfer::getMinY() ═══ getMinY() const [virtual] Returns the lowest value to be graphed on theY axis. double ═══ 2.9.7.7. MFrameXfer::getXAutoScale() ═══ getXAutoScale() const [virtual] Returns 1 if the maximum and minimum X values should be automatically calculated based on the data in the range to be graphed, 0 otherwise. int ═══ 2.9.7.8. MFrameXfer::getXAxisLoc() ═══ getXAxisLoc() const [virtual] Returns the location of the X axis on the Y axis (see "Graph axis constants"). int ═══ 2.9.7.9. MFrameXfer::getXAxisRot() ═══ getXAxisRot() const [virtual] Returns the angle to which the X-axis labels are being rotated. int ═══ 2.9.7.10. MFrameXfer::getXGridCol() ═══ getXGridCol() const [virtual] Returns the color of the X axis grid lines, if any. const MColor * ═══ 2.9.7.11. MFrameXfer::getXLogScale() ═══ getXLogScale() const [virtual] Returns 1 if the X axis is logarythmic, 0 otherwise. int ═══ 2.9.7.12. MFrameXfer::getXMajTickSize() ═══ getXMajTickSize() const [virtual] Returns the size, in pixels, of major ticks on the X axis. int ═══ 2.9.7.13. MFrameXfer::getXMajorGrid() ═══ getXMajorGrid() const [virtual] Returns 1 if grid lines should be drawn from the major ticks on the X axis, 0 otherwise. int ═══ 2.9.7.14. MFrameXfer::getXMajorTicks() ═══ getXMajorTicks() const [virtual] Returns position of the X major ticks relative to the X axis (see "Graph axis constants"). int ═══ 2.9.7.15. MFrameXfer::getXMinTickSize() ═══ getXMinTickSize() const [virtual] Returns the size, in pixels, of minor ticks on the X axis. int ═══ 2.9.7.16. MFrameXfer::getXMinorGrid() ═══ getXMinorGrid() const [virtual] Returns 1 if grid lines should be drawn from the minor ticks on the X axis, 0 otherwise. int ═══ 2.9.7.17. MFrameXfer::getXMinorTicks() ═══ getXMinorTicks()const [virtual] Returns position of the X minor ticks relative to the X axis (see "Graph axis constants"). int ═══ 2.9.7.18. MFrameXfer::getYAutoScale() ═══ getYAutoScale() const [virtual] Returns 1 if the maximum and minimum X values should be automatically calculated based on the data in the range to be graphed, 0 otherwise. int ═══ 2.9.7.19. MFrameXfer::getYAxisLoc() ═══ getYAxisLoc()const [virtual] Returns the location of the Y axis on the X axis (see "Graph axis constants"). int ═══ 2.9.7.20. MFrameXfer::getYAxisRot() ═══ getYAxisRot() const [virtual] Returns the angle to which the Y-axis labels are being rotated. int ═══ 2.9.7.21. MFrameXfer::getYGridCol() ═══ getYGridCol() const [virtual] Returns the color of the Y axis grid lines, if any. const MColor * ═══ 2.9.7.22. MFrameXfer::getYLogScale() ═══ getYLogScale() const [virtual] Returns 1 if the Y axis is logarythmic, 0 otherwise. int ═══ 2.9.7.23. MFrameXfer::getYMajTickSize() ═══ getYMajTickSize() const [virtual] Returns the size, in pixels, of major ticks on theY axis. int ═══ 2.9.7.24. MFrameXfer::getYMajorGrid() ═══ getYMajorGrid() const [virtual] Returns 1 if grid lines should be drawn from the major ticks on the Y axis, 0 otherwise. int ═══ 2.9.7.25. MFrameXfer::getYMajorTicks() ═══ getYMajorTicks() const [virtual] Returns position of the Y major ticks relative to the Y axis (see "Graph axis constants"). int ═══ 2.9.7.26. MFrameXfer::getYMinTickSize() ═══ getYMinTickSize() const [virtual] Returns the size, in pixels, of minor ticks on the Y axis. int ═══ 2.9.7.27. MFrameXfer::getYMinorGrid() ═══ getYMinorGrid() const [virtual] Returns 1 if grid lines should be drawn from the minor ticks on the Y axis, 0 otherwise. int ═══ 2.9.7.28. MFrameXfer::getYMinorTicks() ═══ getYMinorTicks() const [virtual] Returns position of the Y minor ticks relative to the Y axis (see "Graph axis constants"). int ═══ 2.9.8. Retrieving 3-d information about a graph frame ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.8.1. MFrameXfer::getWallCol() ═══ getWallCol() const [virtual] Returns the color of the "wall" that is drawn behind the graphed data on a three-dimensional graph. const MColor * ═══ 2.9.8.2. MFrameXfer::getWireFrame() ═══ getWireFrame() const [virtual] Returns 1 if the three-dimensional graph elements should be drawn in transparent "wire-frame" form, 0 if they should be drawn in solid form. int ═══ 2.9.8.3. MFrameXfer::getXRot() ═══ getXRot() const [virtual] Returns the X rotation of a three-dimensional graph. int ═══ 2.9.8.4. MFrameXfer::getYRot() ═══ getYRot() const [virtual] Returns the Y rotation of a three-dimensional graph. int ═══ 2.9.9. Retrieving merge flags from an MFrameXfer instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.9.1. MFrameXfer::getMergeAnchor() ═══ getMergeAnchor() const [virtual] Returns setting of the merge flag for anchor cell. int ═══ 2.9.9.2. MFrameXfer::getMergeAxisInfo() ═══ getMergeAxisInfo() const [virtual] Returns setting of the merge flag for axis appearance. int ═══ 2.9.9.3. MFrameXfer::getMergeBarColWid() ═══ getMergeBarColWid() const [virtual] Returns setting of the merge flag for bar or column width. int ═══ 2.9.9.4. MFrameXfer::getMergeBkgColor() ═══ getMergeBkgColor() const [virtual] Returns setting of the merge flag for background color. int ═══ 2.9.9.5. MFrameXfer::getMergeBorderCol() ═══ getMergeBorderCol() const [virtual] Returns setting of the merge flag for border color. int ═══ 2.9.9.6. MFrameXfer::getMergeDisplayFormat() ═══ getMergeDisplayFormat() const [virtual] Returns setting of the merge flag for axis display formats. int ═══ 2.9.9.7. MFrameXfer::getMergeElements() ═══ getMergeElements() const [virtual] Returns setting of the merge flag for list of graph elements. int ═══ 2.9.9.8. MFrameXfer::getMergeFrameColor() ═══ getMergeFrameColor() const [virtual] Returns setting of the merge flag for frame color. int ═══ 2.9.9.9. MFrameXfer::getMergeFrameSize() ═══ getMergeFrameSize() const [virtual] Returns setting of the merge flag for frame size. int ═══ 2.9.9.10. MFrameXfer::getMergeGraphBorder() ═══ getMergeGraphBorder() const [virtual] Returns setting of the merge flag for graph-border setting. int ═══ 2.9.9.11. MFrameXfer::getMergeLegendInfo() ═══ getMergeLegendInfo() const [virtual] Returns setting of the merge flag for legend appearance. int ═══ 2.9.9.12. MFrameXfer::getMergeLegendPosition() ═══ getMergeLegendPosition() const [virtual] Returns setting of the merge flag for legend position. int ═══ 2.9.9.13. MFrameXfer::getMergeLineWid() ═══ getMergeLineWid() const [virtual] Returns setting of the merge flag for line width in line graphs. int ═══ 2.9.9.14. MFrameXfer::getMergeName() ═══ getMergeName() const [virtual] Returns setting of the merge flag for frame name. int ═══ 2.9.9.15. MFrameXfer::getMergeOrder() ═══ getMergeOrder() const [virtual] Returns setting of the merge flag for Z-order. int ═══ 2.9.9.16. MFrameXfer::getMergeOrientation() ═══ getMergeOrientation() const [virtual] Returns setting of the merge flag for orientation. int ═══ 2.9.9.17. MFrameXfer::getMergePos() ═══ getMergePos() const [virtual] Returns setting of the merge flag for frame position. int ═══ 2.9.9.18. MFrameXfer::getMergeRange() ═══ getMergeRange() const [virtual] Returns setting of the merge flag for range to graph. int ═══ 2.9.9.19. MFrameXfer::getMergeScale() ═══ getMergeScale() const [virtual] Returns setting of the merge flag for WHAT. int ═══ 2.9.9.20. MFrameXfer::getMergeScript() ═══ getMergeScript() const [virtual] Returns setting of the merge flag for the script to execute. int ═══ 2.9.9.21. MFrameXfer::getMergeShowLine() ═══ getMergeShowLine() const [virtual] Returns setting of the merge flag for the show-line flag. int ═══ 2.9.9.22. MFrameXfer::getMergeShowPoint() ═══ getMergeShowPoint() const [virtual] Returns setting of the merge flag for show-point flag. int ═══ 2.9.9.23. MFrameXfer::getMergeSideTitles() ═══ getMergeSideTitles() const [virtual] Returns setting of the merge flag for side-titles flag. int ═══ 2.9.9.24. MFrameXfer::getMergeSingleXRange() ═══ getMergeSingleXRange() const [virtual] Returns setting of the merge flag for X-ranges flag. int ═══ 2.9.9.25. MFrameXfer::getMergeTitleInfo() ═══ getMergeTitleInfo(int x) const [virtual] int x Which title? Returns setting of the merge flag for the appearance of the given title. int ═══ 2.9.9.26. MFrameXfer::getMergeTitles() ═══ getMergeTitles(int x) const [virtual] int x Which title? Returns setting of the merge flag for the text of the given title. int ═══ 2.9.9.27. MFrameXfer::getMergeTopTitles() ═══ getMergeTopTitles() const [virtual] Returns setting of the merge flag for top-titles flag. int ═══ 2.9.9.28. MFrameXfer::getMergeWallCol() ═══ getMergeWallCol() const [virtual] Returns setting of the merge flag for 3-d wall color. int ═══ 2.9.9.29. MFrameXfer::getMergeWireFrame() ═══ getMergeWireFrame() const [virtual] Returns setting of the merge flag for wire-frame flag. int ═══ 2.9.9.30. MFrameXfer::getMergeXAutoScale() ═══ getMergeXAutoScale() const [virtual] Returns setting of the merge flag for X auto-scale flag. int ═══ 2.9.9.31. MFrameXfer::getMergeXAxisLoc() ═══ getMergeXAxisLoc() const [virtual] Returns setting of the merge flag for X axis location. int ═══ 2.9.9.32. MFrameXfer::getMergeXAxisRot() ═══ getMergeXAxisRot() const [virtual] Returns setting of the merge flag for X-axis label rotation. int ═══ 2.9.9.33. MFrameXfer::getMergeXGridCol() ═══ getMergeXGridCol() const [virtual] Returns setting of the merge flag for X-axis gridline color. int ═══ 2.9.9.34. MFrameXfer::getMergeXLogScale() ═══ getMergeXLogScale() const [virtual] Returns setting of the merge flag for X-axis logarythmic-scale flag. int ═══ 2.9.9.35. MFrameXfer::getMergeXMajTickSize() ═══ getMergeXMajTickSize() const [virtual] Returns setting of the merge flag for X major tick size. int ═══ 2.9.9.36. MFrameXfer::getMergeXMajorGrid() ═══ getMergeXMajorGrid() const [virtual] Returns setting of the merge flag for X-axis major gridline flag. int ═══ 2.9.9.37. MFrameXfer::getMergeXMajorTicks() ═══ getMergeXMajorTicks() const [virtual] Returns setting of the merge flag for X-axis major tick flag. int ═══ 2.9.9.38. MFrameXfer::getMergeXMinTickSize() ═══ getMergeXMinTickSize() const [virtual] Returns setting of the merge flag for X minor tick size. int ═══ 2.9.9.39. MFrameXfer::getMergeXMinorGrid() ═══ getMergeXMinorGrid() const [virtual] Returns setting of the merge flag for X-axis minor gridline flag. int ═══ 2.9.9.40. MFrameXfer::getMergeXMinorTicks() ═══ getMergeXMinorTicks() const [virtual] Returns setting of the merge flag for X-axis minor tick flag. int ═══ 2.9.9.41. MFrameXfer::getMergeXRot() ═══ getMergeXRot() const [virtual] Returns setting of the merge flag for 3-d X rotation. int ═══ 2.9.9.42. MFrameXfer::getMergeYAutoScale() ═══ getMergeYAutoScale() const [virtual] Returns setting of the merge flag for Y auto-scale flag. int ═══ 2.9.9.43. MFrameXfer::getMergeYAxisLoc() ═══ getMergeYAxisLoc() const [virtual] Returns setting of the merge flag for Y axis location. int ═══ 2.9.9.44. MFrameXfer::getMergeYAxisRot() ═══ getMergeYAxisRot() const [virtual] Returns setting of the merge flag for Y-axis label rotation. int ═══ 2.9.9.45. MFrameXfer::getMergeYGridCol() ═══ getMergeYGridCol() const [virtual] Returns setting of the merge flag for Y-axis gridline color. int ═══ 2.9.9.46. MFrameXfer::getMergeYLogScale() ═══ getMergeYLogScale() const [virtual] Returns setting of the merge flag for Y-axis logarythmic-scale flag. int ═══ 2.9.9.47. MFrameXfer::getMergeYMajTickSize() ═══ getMergeYMajTickSize() const [virtual] Returns setting of the merge flag for Y major tick size. int ═══ 2.9.9.48. MFrameXfer::getMergeYMajorGrid() ═══ getMergeYMajorGrid() const [virtual] Returns setting of the merge flag for Y-axis major gridline flag. int ═══ 2.9.9.49. MFrameXfer::getMergeYMajorTicks() ═══ getMergeYMajorTicks() const [virtual] Returns setting of the merge flag for Y-axis major tick flag. int ═══ 2.9.9.50. MFrameXfer::getMergeYMinTickSize() ═══ getMergeYMinTickSize() const [virtual] Returns setting of the merge flag for Y minor tick size. int ═══ 2.9.9.51. MFrameXfer::getMergeYMinorGrid() ═══ getMergeYMinorGrid() const [virtual] Returns setting of the merge flag for Y-axis minor gridline flag. int ═══ 2.9.9.52. MFrameXfer::getMergeYMinorTicks() ═══ getMergeYMinorTicks() const [virtual] Returns setting of the merge flag for Y-axis minor tick flag. int ═══ 2.9.9.53. MFrameXfer::getMergeYRot() ═══ getMergeYRot() const [virtual] Returns setting of the merge flag for 3-d Y rotation. int ═══ 2.9.10. Setting merge flags in an MFrameXfer instance ═══ Open the Contents view and expand this section to see a list of methods. There are no explicit methods for setting merge flags on. However, whenever a value is set within an MFrameXfer instance, its associated merge flag is also set. ═══ 2.9.10.1. MFrameXfer::setNoMerge() ═══ setNoMerge() [virtual] Turns off all the merge flags. void ═══ 2.9.11. Setting generic-frame values in an MFrameXfer instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.11.1. MFrameXfer::setAnchor() ═══ setAnchor(const MAddress *ad) [virtual] const MAddress *ad New anchor cell Sets address of the anchor cell. void ═══ 2.9.11.2. MFrameXfer::setBkgColor() ═══ setBkgColor(const MColor *c) [virtual] const MColor *c Sets background color of the frame. void ═══ 2.9.11.3. MFrameXfer::setBorderCol() ═══ setBorderCol(const MColor *c) [virtual] const MColor *c Sets border color of the frame. void ═══ 2.9.11.4. MFrameXfer::setFrameColor() ═══ setFrameColor(const MColor *c) [virtual] const MColor *c Sets foreground color of the frame. void ═══ 2.9.11.5. MFrameXfer::setFrameSize() ═══ setFrameSize(int i) [virtual] int i New line width Sets the width of the line drawn as the frame, in pixels. void ═══ 2.9.11.6. MFrameXfer::setName() ═══ setName(const char *) [virtual] const char * New name Sets the name of the frame. void ═══ 2.9.11.7. MFrameXfer::setOrder() ═══ setOrder(int i) [virtual] int i New position in Z order Sets the Z-order of the frame. void ═══ 2.9.11.8. MFrameXfer::setPos() ═══ setPos(const MRect *re) [virtual] const MRect *re Rectangle defining the new frame position Sets the location and size of the frame to re. void ═══ 2.9.11.9. MFrameXfer::setScript() ═══ setScript(const char *) [virtual] const char * New script to be executed Sets the text of the REXX script to be executed when the frame is selected. void ═══ 2.9.12. Setting general graph-frame values in an MFrameXfer instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.12.1. MFrameXfer::setBarColWid() ═══ setBarColWid(int i) [virtual] int i New width, in pixels Sets the width of a bar or column. void ═══ 2.9.12.2. MFrameXfer::setGraphBorder() ═══ setGraphBorder(int i) [virtual] int i Ne w border flag value 1 if there is to be a border around the graph, 0 otherwise. void ═══ 2.9.12.3. MFrameXfer::setGraphElements() ═══ setGraphElements(int n, const MGraphElement *) [virtual] int n Number of elements being passed in const MGraphElement * New array of graph elements Deletes the existing array of graph elements and replaces it with the list of elements passed in. For more information, see "MGraphElement". void ═══ 2.9.12.4. MFrameXfer::setLegendInfo() ═══ setLegendInfo(const MGraphElement *ge) [virtual] const MGraphElement *ge Sets information regarding the appearance of the legend. For more information, see "MGraphElement". void ═══ 2.9.12.5. MFrameXfer::setLegendPosition() ═══ setLegendPosition(int i) [virtual] int i New legend position Sets the position of the legend (see "Graph legend constants"). void ═══ 2.9.12.6. MFrameXfer::setLineWid() ═══ setLineWid(int i) [virtual] int i New line width, in pixels Sets the width of the line to be drawn in a line graph. void ═══ 2.9.12.7. MFrameXfer::setOrientation() ═══ setOrientation(int i) [virtual] int i New data orientation Sets the orientation of the data to be graphed (see "Graph orientation constants"). void ═══ 2.9.12.8. MFrameXfer::setRange() ═══ setRange(const MRange *ra) [virtual] const MRange *ra New range to graph Sets the range of data being graphed. void ═══ 2.9.12.9. MFrameXfer::setShowLine() ═══ setShowLine(int i) [virtual] int i New flag value If 1, the line is drawn on a line/scatter graph; if 0, the line is not drawn. void ═══ 2.9.12.10. MFrameXfer::setShowPoint() ═══ setShowPoint(int i) [virtual] int i New flag value If 1, the points are drawn on a line/scatter graph; if 0, the points are not drawn. void ═══ 2.9.12.11. MFrameXfer::setSideTitles() ═══ setSideTitles(int i) [virtual] int i New flag value If 1, the range being graphed includes headings in the first row (if graph is oriented by column) or in the first column (if graph is oriented by row); if 0, it doesn't (see "Graph orientation constants"). void ═══ 2.9.12.12. MFrameXfer::setSingleXRange() ═══ setSingleXRange(int i) [virtual] int i New flag value If 1, the X values in an X-Y graph will be drawn from only the first data series (a column or row of data); if 0, alternating X and Y data series will be used. void ═══ 2.9.12.13. MFrameXfer::setTitleInfo() ═══ setTitleInfo(int x, const MGraphElement *ge) [virtual] int x Which title? const MGraphElement *ge What should the title look like? Sets information regarding the appearance of the given title. A graph frame can include up to four titles (see "Graph title constants"). For more information, see "MGraphElement". void ═══ 2.9.12.14. MFrameXfer::setTitles() ═══ setTitles(int, const char *) [virtual] int Which title? const char * New text Sets the text of the given title. A graph frame can include up to four titles (see "Graph title constants"). void ═══ 2.9.12.15. MFrameXfer::setTopTitles() ═══ setTopTitles(int i) [virtual] int i New flag value If 1, the range being graphed will include headings in the first row (if graph is oriented by row) or in the first column (if graph is oriented by column); if 0, it won't (see "Graph orientation constants"). void ═══ 2.9.13. Setting X and Y axis values in an MFrameXfer instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.13.1. MFrameXfer::setAxisInfo() ═══ setAxisInfo(const MGraphElement *ge) [virtual] const MGraphElement *ge New appearance of the axes Sets information regarding the appearance of the combined X and Y axes. void ═══ 2.9.13.2. MFrameXfer::setDisplayFormat() ═══ setDisplayFormat(int n, int df) [virtual] int n Which axis? int df Display format ID (see "Display format constants") Sets the display format for the labels for the given axis. void ═══ 2.9.13.3. MFrameXfer::setMaxX() ═══ setMaxX(double d) [virtual] double d New maximum X Sets the highest value to be graphed on the X axis. void ═══ 2.9.13.4. MFrameXfer::setMaxY() ═══ setMaxY(double d) [virtual] double d New maximum Y Sets highest value to be graphed on the Y axis. void ═══ 2.9.13.5. MFrameXfer::setMinX() ═══ setMinX(double d) [virtual] double d New minimum X Sets the lowest value to be graphed on the X axis. void ═══ 2.9.13.6. MFrameXfer::setMinY() ═══ setMinY(double d) [virtual] double d New minimum Y Sets the lowest value to be graphed on theY axis. void ═══ 2.9.13.7. MFrameXfer::setXAutoScale() ═══ setXAutoScale(int i) [virtual] int i New flag value If 1, the maximum and minimum X values will be automatically calculated based on the data in the range to be graphed; if 0, they won't. void ═══ 2.9.13.8. MFrameXfer::setXAxisLoc() ═══ setXAxisLoc(int i) [virtual] int i New axis location Sets the location of the X axis on the Y axis (see "Graph axis constants"). void ═══ 2.9.13.9. MFrameXfer::setXAxisRot() ═══ setXAxisRot(int i) [virtual] int i New axis label rotation Sets the angle to which the X-axis labels are being rotated. void ═══ 2.9.13.10. MFrameXfer::setXGridCol() ═══ setXGridCol(const MColor *c) [virtual] const MColor *c New gridline color Sets the color of the X axis grid lines. void ═══ 2.9.13.11. MFrameXfer::setXLogScale() ═══ setXLogScale(int i) [virtual] int i New flag value If 1, the X axis is logarythmic; if 0, it isn't. void ═══ 2.9.13.12. MFrameXfer::setXMajTickSize() ═══ setXMajTickSize(int i) [virtual] int i New tick size Sets the size, in pixels, of major ticks on the X axis. void ═══ 2.9.13.13. MFrameXfer::setXMajorGrid() ═══ setXMajorGrid(int i) [virtual] int i New flag value If 1, grid lines will be drawn from the major ticks on the X axis; if 0, they won't. void ═══ 2.9.13.14. MFrameXfer::setXMajorTicks() ═══ setXMajorTicks(int i) [virtual] int i New tick position Sets position of the X major ticks relative to the X axis (see "Graph axis constants"). void ═══ 2.9.13.15. MFrameXfer::setXMinTickSize() ═══ setXMinTickSize(int i) [virtual] int i New tick size Sets the size, in pixels, of minor ticks on the X axis. void ═══ 2.9.13.16. MFrameXfer::setXMinorGrid() ═══ setXMinorGrid(int i) [virtual] int i New flag value If 1, grid lines will be drawn from the minor ticks on the X axis; if 0, they won't. void ═══ 2.9.13.17. MFrameXfer::setXMinorTicks() ═══ setXMinorTicks(int i) [virtual] int i New tick position Sets position of the X minor ticks relative to the X axis (see "Graph axis constants"). void ═══ 2.9.13.18. MFrameXfer::setYAutoScale() ═══ setYAutoScale(int i) [virtual] int i New flag value If 1, the maximum and minimum X values will be automatically calculated based on the data in the range to be graphed; if 0, they won't. void ═══ 2.9.13.19. MFrameXfer::setYAxisLoc() ═══ setYAxisLoc(int i) [virtual] int i New axis location Sets the location of the Y axis on the X axis (see "Graph axis constants"). void ═══ 2.9.13.20. MFrameXfer::setYAxisRot() ═══ setYAxisRot(int i) [virtual] int i New label rotation Sets the angle to which the Y-axis labels are being rotated. void ═══ 2.9.13.21. MFrameXfer::setYGridCol() ═══ setYGridCol(const MColor *c) [virtual] const MColor *c New grid color Sets the color of the Y axis grid lines. void ═══ 2.9.13.22. MFrameXfer::setYLogScale() ═══ setYLogScale(int i) [virtual] int i New flag value If 1, the Y axis is logarythmic; if 0, it is linear. void ═══ 2.9.13.23. MFrameXfer::setYMajTickSize() ═══ setYMajTickSize(int i) [virtual] int i New tick size Sets the size, in pixels, of major ticks on theY axis. void ═══ 2.9.13.24. MFrameXfer::setYMajorGrid() ═══ setYMajorGrid(int i) [virtual] int i New flag value If 1, grid lines will be drawn from the major ticks on the Y axis; if 0, they won't. void ═══ 2.9.13.25. MFrameXfer::setYMajorTicks() ═══ setYMajorTicks(int i) [virtual] int i New tick position Sets position of the Y major ticks relative to the Y axis (see "Graph axis constants"). void ═══ 2.9.13.26. MFrameXfer::setYMinTickSize() ═══ setYMinTickSize(int i) [virtual] int i New tick size Sets the size, in pixels, of minor ticks on the Y axis. void ═══ 2.9.13.27. MFrameXfer::setYMinorGrid() ═══ setYMinorGrid(int i) [virtual] int i New flag value If 1, grid lines will be drawn from the minor ticks on the Y axis; if 0, they won't. void ═══ 2.9.13.28. MFrameXfer::setYMinorTicks() ═══ setYMinorTicks(int i) [virtual] int i New tick position Sets position of the Y minor ticks relative to the Y axis (see "Graph axis constants"). void ═══ 2.9.14. Setting 3-d values in an MFrameXfer instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.14.1. MFrameXfer::setWallCol() ═══ setWallCol(const MColor *c) [virtual] const MColor *c New wall color Sets the color of the "wall" that is drawn behind the graphed data on a three-dimensional graph. void ═══ 2.9.14.2. MFrameXfer::setWireFrame() ═══ setWireFrame(int i) [virtual] int i New flag value If 1, the three-dimensional graph elements will be drawn in transparent "wire-frame" form; if 0, they will be drawn in solid form. void ═══ 2.9.14.3. MFrameXfer::setXRot() ═══ setXRot(int i) [virtual] int i New X rotation Sets the X rotation of a three-dimensional graph. void ═══ 2.9.14.4. MFrameXfer::setYRot() ═══ setYRot(int i) [virtual] int i New Y rotation Sets the Y rotation of a three-dimensional graph. void ═══ 2.9.15. MFrameXfer operators ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.9.15.1. MFrameXfer::operator=() ═══ operator=(const MFrameXfer &) const MFrameXfer & Parameter to compare to Copies the values from the parameter to the current instance. Returns reference to current instance. MFrameXfer & ═══ 2.10. MGController ═══ controller.h is the source file for this class. This class inherits from MObject An application-specific, abstract base class that handles application-wide message passing. Essentially, any information or task that is not file-specific is stored in and handled by the controller. There is only one controller object instantiated for the application, and a pointer to it is passed to each model when the model is instantiated, so that the model can access the controller functions. The MGController header file references an external MGController *theMesa. In order to use the Mesa DLLs, you must create and instantiate a subclass of MGController that properly handles message-passing between the DLLs and your application. Many MGController methods do not do anything directly, but rather rely on your application to handle the message. The controller keeps track of the following information:  Is the application currently running?  A list of open models  A set of window-buffering caches for faster display  An atom table  List of AddIns loaded into Mesa  A history buffer, containing the REXX equivalents of commands recently executed  Localization data (default currency symbols, thousands-place separator, date and time separator, decimal marker, precision, units, etc.)  A list of "pings" (time-delayed messages) that must be delivered  License status - are we in demo mode? What license has been entered (if any)? Is it valid?  Real-time feed status - when was the real-time feed last run? What thread is it running in?  Are we using RGB colors? ═══ 2.10.1. Creating, destroying, and setting up an MGController instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.1.1. MGController::MGController() ═══ MGController(const char *lic, int &licStatus, HAB, int useRGB, int bufferRedraw) const char *lic License string int &licStatus Storage location for license status HAB Anchor block for the Mesa application int useRGB Should we be using RGB colors? int bufferRedraw What's the buffer redraw? Queries the license manager for status of lic and stores the result in licStatus (see "License status constants"). Initializes controller contents and stores the HAB, buffer redraw status, and RGB color status. void ═══ 2.10.1.2. MGController::~MGController() ═══ ~MGController() [virtual] Attempts to kill the real-time-data feed thread, frees the models, resets screen bitmap, and deletes all other GPI resources that were created. void ═══ 2.10.1.3. MGController::cleanUp() ═══ cleanUp() [virtual] Frees all AddIns and registers that the application is no longer running (see also MGController::isRunning() ). void ═══ 2.10.1.4. MGController::setUp() ═══ setUp() [virtual] Forks two new threads, one for the real-time feed table and to watch for "pings" (see MGController::watchPing()). void ═══ 2.10.1.5. MGController::setupAddIns() ═══ setupAddIns() [virtual] Initializes the AddIns using PrfQueryProfileString and DosLoadModule. This must be called after the application is started, because many AddIns may need application-state information. void ═══ 2.10.1.6. MGController::setupFuncs() ═══ setupFuncs() Sets up sorted lists of functions, unary operators, binary operators, and constants. static void ═══ 2.10.2. Files and models ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.2.1. MGController::addModel() ═══ addModel(MMesaModel *) [virtual] MMesaModel * Model to add to the model list If the model doesn't already exist in the controller's model list, and it refers to a unique pathname, it is added to the model list. Returns 1 if the model is successfully added, 0 otherwise. int ═══ 2.10.2.2. MGController::findModel() ═══ findModel(MMesaModel *) [virtual] MMesaModel * Model to look for Looks for a match to the given model in the model list. Returns an index into the model list for the requested model, or -1 if the model was not found. int findModel(const char *, int) [virtual] const char * File name of model to look for int Does this need to have a default path added to it? 1 to add path, 0 otherwise. Default is 1. Scrolls through the model list looking for a model with the given filename. If found, runs MGController::_findModel(), locking the model temporarily in order to do so safely. Returns pointer to the file/model in question. MMesaModel * ═══ 2.10.2.3. MGController::_findModel() ═══ _findModel(const char *, int) [virtual] const char * File name of model to look for int Does this need to have a default path added to it? 1 to add path, 0 otherwise. Default is 1. Scrolls through the model list looking for a model with the given fileame. If found, returns pointer to the file/model in question. MMesaModel * ═══ 2.10.2.4. MGController::getActiveModel() ═══ getActiveModel() [virtual] Within MGController, returns 0. Classes that inherit from MGController can implement this method to return the currently active model. This method is called by Mesa AddIns. MMesaModel * ═══ 2.10.2.5. MGController::lockModel() ═══ lockModel() [virtual] Locks the current model (see also MGController::unlockModel() ). void ═══ 2.10.2.6. MGController::makeBackup() ═══ makeBackup() [virtual] Within MGController, returns 0. Classes that inherit from MGController can implement this method to indicate whether a backup file should be created when a file is loaded/saved (see MFileStream). Should return 1 to make a backup, 0 otherwise. int ═══ 2.10.2.7. MGController::newModel() ═══ newModel() [virtual] Within MGController, returns 0. Classes that inherit from MGController can implement this method to create a new model and add it to the model list. This method is called by Mesa AddIns. MMesaModel * ═══ 2.10.2.8. MGController::openFile() ═══ openFile(const char *) [virtual] const char * Within MGController, returns 0. Classes that inherit from MGController can implement this method to handle opening files on the file server - for example, by opening the OS/2 File Open dialog panel. This method is called when executing REXX scripts and by Mesa AddIns. MMesaModel * ═══ 2.10.2.9. MGController::removeModel() ═══ removeModel(MMesaModel *) [virtual] MMesaModel * MMesaModel instance to remove Removes the model from the model list. void ═══ 2.10.2.10. MGController::setAllModelsToSaved() ═══ setAllModelsToSaved() [virtual] For each model within the controller, set the "has it been changed since saving?" flag to 0, for no. void ═══ 2.10.2.11. MGController::unlockModel() ═══ unlockModel() [virtual] Unlocks the mutex semaphore, allowing others to lock and make controller-wide changes (see also MGController::lockModel() ). void ═══ 2.10.2.12. MGController::unsavedModel() ═══ unsavedModel() [virtual] Returns 1 if there are unsaved models in the model list, 0 otherwise. int ═══ 2.10.3. AddIns ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.3.1. MGController::addInAboutToClose() ═══ addInAboutToClose(MMesaModel *) [virtual] MMesaModel * Model parameter Retrieves the function for the function type aboutToCloseAddInType (see "AddIn type constants") from the first AddIn in the controller's AddIn list that has a function set for that type (see MGController::registerAddIn()). If such an AddIn is found, the controller executes it using the given model parameter and returns the result. Otherwise, does nothing and returns 0. int ═══ 2.10.3.2. MGController::addInAboutToSave() ═══ addInAboutToSave(MMesaModel *) [virtual] MMesaModel * Model parameter Retrieves the function for the function type aboutToSaveAddInType (see "AddIn type constants") from the first AddIn in the controller's AddIn list that has a function set for that type (see MGController::registerAddIn()). If such an AddIn is found, the controller executes it using the given model parameter and returns the result. Otherwise, does nothing and returns 0. int ═══ 2.10.3.3. MGController::addInDataAboutToBeEntered() ═══ addInDataAboutToBeEntered(MMesaModel *, const MAddress *, const char *) [virtual] MMesaModel * Model parameter const MAddress * Address parameter const char * String parameter Retrieves the function for the function type dataEnteredAddInType (see "AddIn type constants") from the first AddIn in the controller's AddIn list that has a function set for that type (see MGController::registerAddIn()). If such an AddIn is found, the controller executes it using the given model parameter, string parameter, and the layer, row and column fields of the given address parameter (see MAddress), and returns the result. Otherwise, does nothing and returns 0. int ═══ 2.10.3.4. MGController::addInDoubleClick() ═══ addInDoubleClick(MMesaModel *, const MAddress *) [virtual] MMesaModel * Model parameter const MAddress * Address parameter Retrieves the function for the function type doubleClickAddInType (see "AddIn type constants") from the first AddIn in the controller's AddIn list that has a function set for that type (see MGController::registerAddIn()). If such an AddIn is found, the controller executes it using the given model parameter and the layer, row and column fields of the given address parameter (see MAddress), and returns the result. Otherwise, does nothing and returns 0. void ═══ 2.10.3.5. MGController::addInOpened() ═══ addInOpened(MMesaModel *) [virtual] MMesaModel * Model parameter Retrieves the function for the function type openedAddInType (see "AddIn type constants") from the first AddIn in the controller's AddIn list that has a function set for that type (see MGController::registerAddIn()). If such an AddIn is found, the controller executes it using the given model parameter and returns the result. Otherwise, does nothing and returns 0. void ═══ 2.10.3.6. MGController::addInPMMessage() ═══ addInPMMessage(int, int, int, int) [virtual] MMesaModel * Model parameter Retrieves the function for the function type pmMessageAddInType (see "AddIn type constants") from the first AddIn in the controller's AddIn list that has a function set for that type (see MGController::registerAddIn()). If such an AddIn is found, the controller executes it using the given model parameter and returns the result. Otherwise, does nothing and returns 0. int ═══ 2.10.3.7. MGController::doAddInMenuFunction() ═══ doAddInMenuFunction(int com, int type) [virtual] int com Menu command ID int type What should be done with the command? (0 to execute it, 1 to return "can execute" setting for it, and 2 to trigger context-sensitive help for it) Retrieves the function for the function type menuAddInType (see "AddIn type constants") from the first AddIn in the controller's AddIn list that has a function set for that type (see MGController::registerAddIn()). If such an AddIn is found, the controller either executes it, retrieves its "can execute" setting, or triggers its context-sensitive help (depending on the value of type) and returns the result. Otherwise, does nothing and returns 0. int ═══ 2.10.3.8. MGController::findFuncAddIns() ═══ findFuncAddIns(const char *, int = -1) [virtual] const char * Function name int Optional cached index into function AddIn list (for speeding searches) If a function AddIn with the given name exists in the function AddIn list, returns an index into that list for that function. Otherwise, returns -1. int ═══ 2.10.3.9. MGController::getFuncAddInFBDescription() ═══ getFuncAddInFBDescription(int) [virtual] int Index into function AddIn list Returns the description string defined in the given function AddIn, or a NULL pointer if none exists (see also MGController::registerFunctionAddIn() ). const char * ═══ 2.10.3.10. MGController::getFuncAddInFBExample() ═══ getFuncAddInFBExample(int) [virtual] int Index into function AddIn list Returns the example string defined in the given function AddIn, or a NULL pointer if none exists (see also MGController::registerFunctionAddIn() ). const char * ═══ 2.10.3.11. MGController::getFuncAddInFBMembers() ═══ getFuncAddInFBMembers(int) [virtual] int Index into function AddIn list Returns a list of function category IDs defined in the given function AddIn, or a NULL pointer if none exists (see "Function category constants") (see also MGController::registerFunctionAddIn() ). const int * ═══ 2.10.3.12. MGController::getFuncAddInFBName() ═══ getFuncAddInFBName(int) [virtual] int Index into function AddIn list Returns the human-readable function name defined in the given function AddIn, or a NULL pointer if none exists. Two functions can have the same human-readable function name, and the name is not intended for anything but display purposes (see also MGController::registerFunctionAddIn() ). (Compare with MGController::getFuncAddInName().) const char * ═══ 2.10.3.13. MGController::getFuncAddInFBPrototype() ═══ getFuncAddInFBPrototype(int) [virtual] int Index into function AddIn list Returns the prototype string defined in the given function AddIn, or a NULL pointer if none exists (see also MGController::registerFunctionAddIn() ). const char * ═══ 2.10.3.14. MGController::getFuncAddInName() ═══ getFuncAddInName(int) [virtual] int Index into function AddIn list Returns the name defined in the given function AddIn, or a NULL pointer if none exists. Function names must be unique and are used to parse function entries (see also MGController::registerFunctionAddIn() ). (Compare with MGController::getFuncAddInFBName().) const char * ═══ 2.10.3.15. MGController::getNumFuncAddIns() ═══ getNumFuncAddIns() [virtual] Returns the number of function AddIns that have been loaded into the controller. int ═══ 2.10.3.16. MGController::performAddInFunction() ═══ performAddInFunction(const char *, int numberOfParams, int cache, MStack *stack, MMesaModel *model) [virtual] const char * Name of function int numberOfParams Number of parameters in function int cache Cached AddIns (used to facilitate searching) MStack *stack Stack of parameters to pass to the function being performed MMesaModel *model Model parameter to pass to the function being performed If the named function AddIn can be found in the AddIn list (see MGController::findFuncAddIns()), then retrieves the function from that AddIn (see MGController::registerAddIn()) and executes it using the given stack and model as parameters, and returns index into the AddIn list. Otherwise, returns -1 and does nothing. int ═══ 2.10.3.17. MGController::registerAddIn() ═══ registerAddIn(void *,void *,int) [virtual] void * Module to search for void * Function int AddIn function type Finds the given module in the AddIn list or creates a new module and adds it to the list; the associates the given function type in that AddIn (see "AddIn type constants") with the given function. void ═══ 2.10.3.18. MGController::registerFunctionAddIn() ═══ registerFunctionAddIn(const char *name, const char *fbName, const char *fbProto, const char *fbDesc, const char *fbExample, int *fbMembers, void *callBack) [virtual] const char *name Function name, for formula-parsing purposes. const char *fbName Function name, for human-readable display purposes. const char *fbProto Function prototype, for human-readable display purposes const char *fbDesc Function description, for human-readable display purposes const char *fbExampleFunction example, for human-readable display purposes int *fbMembers What function categories does the function belong to (see "Function category constants")? void *callBack Finds the given function AddIn or creates a new one, and sets its fields to the given values. void ═══ 2.10.4. Atoms and resources ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.4.1. MGController::addStringToHistoryBuffer() ═══ addStringToHistoryBuffer(const char *) [virtual] const char * String to add Within MGController, does nothing. Classes that inherit from MGController may maintain a history buffer if desired; if so, this method should add the given line to the buffer. Various methods within DOK will execute this method - for example, MSheetView::mouse1MotionEnd() may result in selecting a range, which will attempt to add a line to the history buffer. void ═══ 2.10.4.2. MGController::findAtom() ═══ findAtom(const char *) [virtual] const char * String to search for in atom table Pass-through to WinFindAtom(), or to WinAddAtom() if the string is not found. int ═══ 2.10.4.3. MGController::getAtom() ═══ getAtom(int) [virtual] Pass-through to WinQueryAtomName(). char * ═══ 2.10.4.4. MGController::getAtomForMesa() ═══ getAtomForMesa() [virtual] Pass-through to MGController::findAtom(), using the application name. int ═══ 2.10.4.5. MGController::getCharRes() ═══ getCharRes(int) [virtual] int Resource ID Returns the string associated with the given resource ID in the resource tables. char * ═══ 2.10.4.6. MGController::getErrorString() ═══ getErrorString(int, char *) [virtual] int Error number char * Buffer to hold string Given an error number, copy the corresponding string into the buffer provided. void ═══ 2.10.4.7. MGController::getShortErrorString() ═══ getShortErrorString(int, char *) [virtual] int Error number char * Storage buffer Stores the defined short error string for the given error number. void ═══ 2.10.4.8. MGController::getMaxErrorNumber() ═══ getMaxErrorNumber() [virtual] Returns largest known error number. int ═══ 2.10.4.9. MGController::loadResString() ═══ loadResString(int, char *) [virtual] int Resource ID char * Storage location Pass-through to WinLoadString() to store the string for the given resource ID. Returns 1 if successful, 0 otherwise. int ═══ 2.10.5. REXX scripts ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.5.1. MGController::addScriptToQueue() ═══ addScriptToQueue(const char *) [virtual] const char * Script to add Within MGController, does nothing. Classes that inherit from MGController may maintain a script queue if desired; if so, this method should add the given script to the queue. Various methods within DOK will execute this method - for example, MSheetView::mouse1MotionEnd() may result in selecting a frame, which may attempt to add a script to the queue if one is associated with that frame. void ═══ 2.10.5.2. MGController::runScript()=0 ═══ runScript(const char *, MException *) = 0 [virtual] const char * Script to run MException * MException instance for storing error/warning messages Within MGController, does nothing. Classes that inherit from MGController can implement this method to execute the given REXX script in a new thread. void ═══ 2.10.6. Windows ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.6.1. MGController::addToDestroyList()=0 ═══ addToDestroyList(HWND) = 0 [virtual] HWND HWND to add to the destroy list. Within MGController, does nothing. Classes that inherit from MGController may maintain a destroy list which keeps track of windows that should be destroyed. void ═══ 2.10.6.2. MGController::getActiveWindow() ═══ getActiveWindow() [virtual] Within MGController, returns 0. Classes that inherit from MGController can implement this method to return a handle to the currently active window. This method is called during REXX script execution and by Mesa AddIns. HWND ═══ 2.10.6.3. MGController::getApplicationClientWindow()=0 ═══ getApplicationClientWindow() = 0 [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to return a handle to the client window for the application. HWND ═══ 2.10.6.4. MGController::getApplicationWindow() ═══ getApplicationWindow() [virtual] Within MGController, returns 0. Classes that inherit from MGController can implement this method to return a handle to the main application window. This method is called by Mesa AddIns. HWND ═══ 2.10.6.5. MGController::getApplicationFrameWindow()=0 ═══ getApplicationFrameWindow() = 0 [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to return a handle to the frame window for the application. HWND ═══ 2.10.6.6. MGController::getBufferRedraw() ═══ getBufferRedraw() [virtual] Returns 1 if the buffer should be redrawn, 0 otherwise. int ═══ 2.10.6.7. MGController::getMenuWindow()=0 ═══ getMenuWindow()= 0 [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to return a handle to the main menu. This method is called by Mesa AddIns. int ═══ 2.10.7. Event queue ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.7.1. MGController::beAlive()=0 ═══ beAlive() = 0 [virtual] Within MGController, does nothing. Each class that inherits from MGController must provide a method to look at the message queue and process events in a timely fashion. Returns 1 to keep running, 0 to terminate application. int ═══ 2.10.7.2. MGController::ping() ═══ ping(int, HWND, MPARAM=0, MPARAM=0) [virtual] int Duration in microseconds before sending the ping HWND HWND of the window to ping MPARAM=0 Message Parameter 1 to send; defaults to 0 MPARAM=0 Message Parameter 2 to send; defaults to 0 Waits a given number of microseconds and then sends a MEM_PING message to the given window, including the two message parameters. void ═══ 2.10.7.3. MGController::watchPing() ═══ watchPing() [virtual] This method is run when the controller is first created (see MGController::setUp()), and continues to run until the application stops running (see also MGController::cleanUp() ). Every 50 milliseconds, it runs through the event queue and posts messages to the appropriate windows. void ═══ 2.10.8. Commands ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.8.1. MGController::canExecute() ═══ canExecute(int, int &flags) [virtual] int Command ID int &flags Storage location for flags Returns 1 if the command can be executed. Within MGController, returns 0 and sets flags to 0. Classes that inherit from MGController should include tests for application-specific commands to determine whether those commands can be executed when this method is called (see also MWindow::canExecute() ). int ═══ 2.10.9. Status indicators ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.9.1. MGController::cycleCalcIndicator() ═══ cycleCalcIndicator() [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to activate a visual indicator that recalculation is occurring. This method is called during recalculation (see recalc(const MAddress *, int) [virtual]). void ═══ 2.10.9.2. MGController::displayException()=0 ═══ displayException(const MException *) = 0 [virtual] const MException * MException reference Within MGController, does nothing. Classes that inherit from MGController must handle displaying values from an MException instance, such as errors and warnings (see MException). void ═══ 2.10.9.3. MGController::percentComplete()=0 ═══ percentComplete(int) = 0 [virtual] int What percent complete the operation is. Within MGController, does nothing. Classes that inherit from MGController can implement this method to display some indication that an operation is a certain percent complete. This method is called by models at many different times by Mesa models. void ═══ 2.10.9.4. MGController::seriousError() ═══ seriousError(const char *) [virtual] const char * Error message A serious error is one which will terminate the Mesa 2 application after display. This method creates a WinMessageBox that prints the error message along with the results of WinGetLastError(). The controller also deallocates all memory allocated to AddIns. void ═══ 2.10.9.5. MGController::setStatusMessage()=0 ═══ setStatusMessage(const char *) = 0 [virtual] const char * Current status message Within MGController, does nothing. Classes that inherit from MGController can implement this method to display a current-status message. void ═══ 2.10.10. Display formats ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.10.1. MGController::getCurrency() ═══ getCurrency() [virtual] Returns the currency character, which is either the prefix or the trailing character, for the current default first currency type. This is $ by default (see also MGController::getCurrencyChars() ). const char * ═══ 2.10.10.2. MGController::getCurrencyChars() ═══ getCurrencyChars(int, int) [virtual] int Which currency type? (0 for dollars, 1 for yen, 2 for pounds, 3 for generic American numeric format) int Which field to retrieve? (0 for decimal marker, 1 for thousands separator, 2 for prefix, 3 for trailing character.) Returns the character or characters for the given field of the given currency type from the default initial currency formats. (Compare with MMesaModel::getCurSymbols().) For more information, see "Currency and numeric symbols". For example, getCurrencyChars(0,2) will return $, while getCurrencyChars(2,2) will return an empty string (since pound format does not have a prefix character). const char * ═══ 2.10.10.3. MGController::getCurrencyPrefix() ═══ getCurrencyPrefix() [virtual] Returns 1 if the current default first currency type has a prefix currency symbol (e.g; the American dollar) and 0 otherwise. const int ═══ 2.10.10.4. MGController::getDateFormat() ═══ getDateFormat() [virtual] Returns the current default date format (see "Display format constants"). const unsigned int ═══ 2.10.10.5. MGController::getDateOrder() ═══ getDateOrder() [virtual] Returns 0 if the current default date format lists month first, then day, then year. Returns 1 if the current default date format lists day first, then month, then year. Returns 2 if the current default date format lists year first, then month, then day. For example, if the current default date format is dateDMYFormat, getDateOrder() will return 1 (see "Display format constants"). const int ═══ 2.10.10.6. MGController::getDateSep() ═══ getDateSep() [virtual] Returns the character used to separate month, date and year in the current default date format. For example, if the current default date format is dateDMYFormat, getDateSep() will return / (see "Display format constants"). const char * ═══ 2.10.10.7. MGController::getDecSep() ═══ getDecSep() [virtual] Returns the decimal marker used in the default first currency format (see also MGController::getCurrencyChars() ). const char * ═══ 2.10.10.8. MGController::getThousandsSep() ═══ getThousandsSep() [virtual] Returns the thousands-place separator defined for the current default first currency format. (Compare with MGController::getCurrencyChars().) const char * ═══ 2.10.10.9. MGController::getTimeAM() ═══ getTimeAM() [virtual] Returns the string used to indicate morning in 12-hour time formats (see "Display format constants"). const char * ═══ 2.10.10.10. MGController::getTimeFormat() ═══ getTimeFormat() [virtual] Returns the time format ID (see "Display format constants"). const unsigned int ═══ 2.10.10.11. MGController::getTimePM() ═══ getTimePM() [virtual] Returns the string used to indicate afternoon in 12-hour time formats (see "Display format constants"). const char * ═══ 2.10.10.12. MGController::getTimeSep() ═══ getTimeSep() [virtual] Returns the string used to separate hours, minutes and seconds in time display formats (see "Display format constants"). const char * ═══ 2.10.11. Licensing ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.11.1. MGController::getInDemoMode() ═══ getInDemoMode() [virtual] Returns 1 if in demo mode, 0 otherwise. int ═══ 2.10.11.2. MGController::getLicense() ═══ getLicense(int) [virtual] int Truncate hyphenated license string? 1 for yes, 0 for no. Returns license string being used. Flag passed in controls whether the second part of a hyphenated license is returned. If the current license string is F154-14, then getLicense(1) returns F154 while getLicense(0) returns F154-14. (Hyphenated licenses are a site-licensing convention.) const char * ═══ 2.10.12. Current selection ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.12.1. MGController::getCurrentAddress() ═══ getCurrentAddress(MAddress *) [virtual] MAddress * Storage location Within MGController, always returns 0. Classes that inherit from MGController can implement this method to store the address of the current base cell; it should return 1 if successful and 0 otherwise. This method is called by Mesa AddIns. int ═══ 2.10.12.2. MGController::getCurrentRange() ═══ getCurrentRange(MRange *) [virtual] MRange * Storage location Within MGController, returns 0. Classes that inherit from MGController can implement this method to store the address of the currently selected range. This method is called by Mesa AddIns. int ═══ 2.10.12.3. MGController::selectRange() ═══ selectRange(const char *) [virtual] const char * Address of range to select Within MGController, does nothing. Classes that inherit from MGController can implement this method to select a range in the active window with the given address. This method is called by Mesa AddIns. void ═══ 2.10.13. Default dimensions ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.13.1. MGController::getDefaultRowsAndCols() ═══ getDefaultRowsAndCols(int &, int &) [virtual] int & Storage for rows int & Storage for columns Stores the default row/column size. In MGController, the defaults are 32x32. void ═══ 2.10.13.2. MGController::getDefaultUndoAndLayers() ═══ getDefaultUndoAndLayers(int &, int &) [virtual] int & Storage for number of undo levels int & Storage for number of layers Stores the default undo/layer settings. In MGController, the defaults are 32 undo levels and 1 layer. void ═══ 2.10.14. Keyboard and mouse actions ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.14.1. MGController::getEnterBehavior() ═══ getEnterBehavior() [virtual] Within MGController, returns 0. Classes that inherit from MGController can implement this method to return an ID indicating what should happen when the Enter key is pressed (see "Enter behavior constants"). int ═══ 2.10.14.2. MGController::getHitPoint()=0 ═══ getHitPoint() = 0 [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to return most recent hit-point location of the mouse. MPoint ═══ 2.10.14.3. MGController::handleKey()=0 ═══ handleKey(int, int) = 0 [virtual] int Character entered int Other key flags set (Ctrl, Alt, etc.) Within MGController, does nothing. Classes that inherit from MGController can implement this method to indicate whether the key has been handled - 0 if it has, 1 if it has not. int ═══ 2.10.15. Recalculation and real-time data feeds ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.15.1. MGController::getRealTimeValue() ═══ getRealTimeValue(const char *, const char *, double &val) [virtual] const char * First ID string const char * Second ID string double &val Storage buffer Looks in the real-time feed table for an entry containing both ID strings, and stores the associated value in val. Returns noError if the entry is found, or feedNotFoundError otherwise. int ═══ 2.10.15.2. MGController::recalcNeedFeeds() ═══ recalcNeedFeeds() [virtual] Recalculates all models in the model list that depend on the real-time feed table (see MMesaModel::getHasFeed()) and are set to automatically recalculate (see MMesaModel::getAutoRecalc()). void ═══ 2.10.15.3. MGController::setRealTimeValue() ═══ setRealTimeValue(const char *, const char *, double) [virtual] const char * First ID string const char * Second ID string double Value Adds an entry to the real-time data feed table with the two identifier strings and the double value. void ═══ 2.10.15.4. MGController::waitForData() ═══ waitForData() [virtual] Polls the real-time data feed table every 250 microseconds. If data has changed, triggers a recalculation of those models that depend on the feed table (see MGController::recalcNeedFeeds()). void ═══ 2.10.16. Retrieving thread information ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.16.1. MGController::getThreadNum() ═══ getThreadNum() [virtual] Returns the thread number for the controller. int ═══ 2.10.17. Retrieving current status of the application ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.17.1. MGController::getInBeAlive()=0 ═══ getInBeAlive() = 0 [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to indicate if MGController::beAlive()=0 is currently running (1 if so, 0 otherwise). int ═══ 2.10.17.2. MGController::isApplicationActive() ═══ isApplicationActive() [virtual] Within MGController, always returns 1. Classes that inherit from MGController can implement this method to determine whether the application is currently active. This method is called by the edit view to control blinking of the insertion point (see MEditView::winPing()). int ═══ 2.10.17.3. MGController::isEditing()=0 ═══ isEditing() = 0 [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to indicate whether a model is currently being edited (1 if so, 0 otherwise). This method is called primarily by display classes to determine whether certain commands can be executed (see MWindow::canExecute()). int ═══ 2.10.17.4. MGController::isEditingFormula()=0 ═══ isEditingFormula() = 0 [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to indicate whether a formula in a model is currently being edited (1 if so, 0 otherwise). This method is called primarily by display classes to allow different behavior for common actions (besides simple text-entry) while editing a formula; e.g. dragging the mouse to enter a range address rather than select the range. int ═══ 2.10.17.5. MGController::isRunning() ═══ isRunning() [virtual] Returns 1 if the application is registered as running, 0 otherwise (see also MGController::cleanUp() ). int ═══ 2.10.18. RGB colors ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.18.1. MGController::getUseRGB() ═══ getUseRGB() [virtual] Returns 1 if using RGB colors, 0 otherwise. int ═══ 2.10.19. Edit view ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.10.19.1. MGController::getEditView()=0 ═══ getEditView() = 0 [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to return a pointer to the application's edit view, if one exists (see MEditView). MEditView * ═══ 2.10.19.2. MGController::removeEdit()=0 ═══ removeEdit() = 0 [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to remove the displayed value from the edit view. void ═══ 2.10.19.3. MGController::resizeFormulaView()=0 ═══ resizeFormulaView()= 0 [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to resize a "formula view" - a area that displays the underlying contents of the current base cell (see also MGController::updateFormulaView()=0 ). void ═══ 2.10.19.4. MGController::updateFormulaView()=0 ═══ updateFormulaView() = 0 [virtual] Within MGController, does nothing. Classes that inherit from MGController can implement this method to redisplay the contents of the current base cell in a separate "formula view" window (see also MGController::resizeFormulaView()=0 ). void ═══ 2.11. MInterest ═══ interest.h is the source file for this class. This class inherits from MObject Abstract base class that represents interest in an model, which results in notifications being sent when that model undergoes a state change. Each model maintains a list of registered interests in it (see MMesaModel::registerInterest()), and notifies the interest whenever an appropriate state change occurs. For example, when you set up an MMesaView instance (see MMesaView::setUp()), it instantiates a special MInterest subclass (a "display interest") that refers to itself, and registers that interest with its associated model. Whenever a format change occurs in the model, the model issues a formatsChanged() message to all the registered MInterest instances, including the MMesaView's display interest. If you want to notify your own objects of changes in a model, you can subclass MInterest and implement the notification functions appropriately. Whenever a model notifies an interest of a state change, it includes an MChange parameter. MChange is a Mesa-internal class that represents a list of cells that have been affected by the state change. For more information, see "MChange". ═══ 2.11.1. Creating and destroying an MInterest instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.11.1.1. MInterest::MInterest() ═══ MInterest() Initializes the MInterest. void ═══ 2.11.1.2. MInterest::~MInterest() ═══ ~MInterest() [virtual] Destroys the MInterest instance and releases any allocated resources. void ═══ 2.11.2. Notifying the interested object of a state change ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.11.2.1. MInterest::changedSize()=0 ═══ changedSize(MChange *) = 0 [virtual] MChange * List of affected cells Within MInterest, does nothing. Subclasses of MInterest should notify the interested object appropriately. This method is called when cells in the model have been resized. void ═══ 2.11.2.2. MInterest::contentsChanged()=0 ═══ contentsChanged(MChange *) = 0 [virtual] MChange * List of affected cells Within MInterest, does nothing. Subclasses of MInterest should notify the interested object appropriately. This method is called when the contents of one or more cells in the model have been changed. void ═══ 2.11.2.3. MInterest::formatsChanged()=0 ═══ formatsChanged(MChange *) = 0 [virtual] MChange * List of affected cells Within MInterest, does nothing. Subclasses of MInterest should notify the interested object appropriately. This method is called when the formats of one or more cells in the model have been changed. void ═══ 2.11.2.4. MInterest::redisplay()=0 ═══ redisplay(MChange *) = 0 [virtual] MChange * List of affected cells Within MInterest, does nothing. Subclasses of MInterest should notify the interested object appropriately. This method is called when the model is redisplayed (see MMesaModel::redisplay()). void ═══ 2.11.2.5. MInterest::resetView()=0 ═══ resetView(MChange *) = 0 [virtual] MChange * List of affected cells Within MInterest, does nothing. Subclasses of MInterest should notify the interested object appropriately. This method is called when a script has been deleted. void ═══ 2.12. MMesaModel ═══ mesamodel.h is the source file for this class. This class inherits from MObject Represents an open Mesa 2 file, often called a workbook or a model. In general, all information and processes specific to a single Mesa 2 file can be accessed and initiated by the MMesaModel instance that represents that file. Within this document, MMesaModel is often discussed as if it contained information about a model; in reality, most of the information is maintained in an instance of MModel, which is a Mesa-internal class not directly available through Mesa DOK. MMesaModel simply keeps track of an MModel instance, and most MMesaModel methods are simple pass-through functions. MMesaModel is a SOM-based class, where MModel is not (for performance reasons). By using MMesaModel in your SOM-based custom applications, you allow the application to interact with future updated versions of the Mesa DOK DLL's without having to be recompiled. ═══ 2.12.1. MMesaModel contents ═══ Open the Contents view and expand this section to see a list of methods. Each MMesaModel instance keeps track of the following information:  a cell list, containing address, contents, value type, format, and (optional) cached value for every non-empty cell in the model;  a layer list, containing name, row and column count and size information, default formatting information, and protection status for each layer in the model;  a label list, containing a name, range, and "autogrow" setting for all labelled ranges in the model (if any);  a script list, including name, program, and execution settings for all REXX scripts in the model (if any);  a frame list (see MFrameXfer), including position, type and settings for all graphs, shapes, and other graphic objects (if any);  a window list, including positions and magnification settings for all windows that display the model;  recalculation information: Does the model recalculate automatically when a cell is edited? In what order should cells be recalculated, and how often? Has the model been changed since the last recalculation? Which cells depend on which other cells for their values? Do any cells in the model depend on the controller's real-time feed table for their values?  a print-job header which determines the appearance of printed pages from this model;  a DDE link table containing references to tagged items in other models or other DDE-enabled applications;  a BLOB list, containing Binary Large OBject entries for the model;  a format list, with an entry for every unique format in the model (see MFormat);  a font list, with an entry for every unique font in the model (see MFont);  a currency character array which is used in numeric and currency display formats;  an undo list and a redo list, used for keeping track of executed commands, associated model changes, and associated selections so that the model can be restored to an earlier state;  file information for the model, including file name, path name (if any), and optional password. ═══ 2.12.2. Creating, destroying, and setting up an MMesaModel instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.2.1. MMesaModel::MMesaModel() ═══ MMesaModel() Instantiates the MMesaModel instance. void ═══ 2.12.2.2. MMesaModel::~MMesaModel() ═══ ~MMesaModel() [virtual] Releases the MMesaModel instance. void ═══ 2.12.2.3. MMesaModel::cleanUp() ═══ cleanUp(MGController *) [virtual] MGController *gc The controller (see MGController) Deletes all items in the DDE item list for the model, freezes the event queue and unsets the controller's running flag (see MGController). void ═══ 2.12.2.4. MMesaModel::setUp() ═══ setUp(MGController *) [virtual] MGController * Controller to associate with the model Registers the current model with the application controller (see MGController). void ═══ 2.12.3. Cell and range addresses ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.3.1. MMesaModel::addressFromPoint() ═══ addressFromPoint(const MAddress *, const MPoint *, int) const MAddress * MAddress of the upper-left corner of the display const MPoint * Point to look up int Clip the address to within the window, or not? 1 to clip, 0 for no. Default is 1 Returns the absolute address of the cell containing the given point (see MAddress). MAddress ═══ 2.12.3.2. MMesaModel::adToStr() ═══ adToStr(const MAddress *, char *, int) const MAddress * Address to get the string-representation of char * Storage location int Always include layer reference ? -1 for yes (default) Creates a character-string representation of the address (see MAddress::toStr()). Stores the result in the character buffer provided. void ═══ 2.12.3.3. MMesaModel::doesCellExist() ═══ doesCellExist(const MAddress *) [virtual] const MAddress * Address of cell Determines whether the cell at the given address has been created or not. The model's cell array is a sparse matrix, containing only those cells which have contents or formatting or some other actual information in them. For example, a 300-row by 400-column layer has 120,000 potential cells; however, if only one cell has been edited since the layer was created, then only one of those cells will actually exist. Returns 1 if the cell exists, 0 otherwise. int ═══ 2.12.3.4. MMesaModel::find() ═══ find(const char *, int, int, const MRange *, const MAddress *) [virtual] const char * String to search for int Flags controlling the search (see "Search constants") int Search order (1 for horizontal-first, 0 for vertical-first) const MRange * Range in which to search const MAddress * Starting address Searches within the given range for the first cell after the starting address containing the given string. Returns the address of that cell, or a null address if none is found. Note that by setting the starting address to the return value of find(), you can use this method to cycle through an entire range and find all occurrances of the string. MAddress ═══ 2.12.3.5. MMesaModel::findLowerRightCell() ═══ findLowerRightCell(MAddress *) [virtual] MAddress * Storage location Finds and stores the address of the lower-right most cell in the layer, ignoring blank cells and hidden rows/columns. void ═══ 2.12.3.6. MMesaModel::findNextCellInCol() ═══ findNextCellInCol(int type, const MAddress *, MAddress *) [virtual] int type Type of search (1 for blank, 0 for non-blank) const MAddress * Address of current cell MAddress * Storage location This method checks each cell under the current cell in the same column. If type is 0, then: if the cell immediately underneath is non-blank, the method stores the address of the last non-blank cell it encounters before a blank cell; if the cell immediately underneath is blank, the method stores the address of the first non-blank cell it encounters. If type is 1, the method stores the address of the first non-blank cell it encounters. In all cases, hidden rows are ignored, and the cell in the last row of the layer is stored (whether or not it is blank) if the search fails. For example, if the current layer has 4 columns and 5 rows, with the following contents:  A B C D R1: 100 Piano Australia Red R2: 200 Guitar Blue R3: 300 Jamaica R4: Germany R5: 400 Tuba Korea ...and the type parameter is set to 1 if the current cell is blank and 0 if the current cell is not blank, then findNextCellInCol(type, currentCell, tmp) will store the following addresses in tmp for the given currentCell addresses:  currentCell tmp C1 C3 C2 C3 D1 D2 D2 D5 A2 A4 This method is used when processing the End,Down Arrow key combination. void ═══ 2.12.3.7. MMesaModel::findNextCellInRow() ═══ findNextCellInRow(int, const MAddress *, MAddress *) [virtual] int Type of search (1 for blank, 0 for non-blank) const MAddress * Address of current cell MAddress * Storage location This method checks each cell to the right of the current cell in the same row. If type is 0, then: if the cell immediately to the right is non-blank, the method stores the address of the last non-blank cell it encounters before a blank cell; if the cell immediately to the right is blank, the method stores the address of the first non-blank cell it encounters. If type is 1, the method stores the address of the first non-blank cell it encounters. In all cases, hidden columns are ignored, and the cell in the last column in the layer is stored (whether or not it is blank) if the search fails. For example, if the current layer has 4 columns and 5 rows, with the following contents:  A B C D R1: 100 Piano Australia Red R2: 200 Guitar Blue R3: 300 Jamaica R4: Germany R5: 400 Tuba Korea ...and the type parameter is set to 1 if the current cell is blank and 0 if the current cell is not blank, then findNextCellInRow(type, currentCell, tmp) will store the following addresses in tmp for the given currentCell addresses:  currentCell tmp A1 D1 A2 B2 B2 D2 A3 C3 C3 D3 This method is used when processing the End,Right Arrow key combination. void ═══ 2.12.3.8. MMesaModel::findPriorCellInCol() ═══ findPriorCellInCol(int, const MAddress *, MAddress *) [virtual] int Type of search (1 for blank, 0 for non-blank) const MAddress * Address of current cell MAddress * Storage location This method checks each cell above the current cell in the same column. If type is 0, then: if the cell immediately above is non-blank, the method stores the address of the last non-blank cell it encounters before a blank cell; if the cell immediately above is blank, the method stores the address of the first non-blank cell it encounters. If type is 1, the method stores the address of the first non-blank cell it encounters. In all cases, hidden rows are ignored, and the cell in the first row is stored (whether or not it is blank) if the search fails. For example, if the current layer has 4 columns and 5 rows, with the following contents:  A B C D R1: 100 Piano Australia Red R2: 200 Guitar Blue R3: 300 Jamaica R4: Germany R5: 400 Tuba Korea ...and the type parameter is set to 1 if the current cell is blank and 0 if the current cell is not blank, then findPriorCellInCol(type, currentCell, tmp) will store the following addresses in tmp for the given currentCell addresses:  currentCell tmp D5 D2 C5 C3 B5 B2 A5 A3 This method is used when processing the End,Up Arrow key combination. void ═══ 2.12.3.9. MMesaModel::findPriorCellInRow() ═══ findPriorCellInRow(int, const MAddress *, MAddress *) [virtual] int Type of search (1 for blank, 0 for non-blank) const MAddress * Address of current cell MAddress * Storage location This method checks each cell to the left of the current cell in the same row. If type is 0, then: if the cell immediately to the left is non-blank, the method stores the address of the last non-blank cell it encounters before a blank cell; if the cell immediately to the left is blank, the method stores the address of the first non-blank cell it encounters. If type is 1, the method stores the address of the first non-blank cell it encounters. In all cases, hidden columns are ignored, and the cell in the first column is stored (whether or not it is blank) if the search fails. For example, if the current layer has 4 columns and 5 rows, with the following contents:  A B C D R1: 100 Piano Australia Red R2: 200 Guitar Blue R3: 300 Jamaica R4: Germany R5: 400 Tuba Korea ...and the type parameter is set to 1 if the current cell is blank and 0 if the current cell is not blank, then findPriorCellInRow(type, currentCell, tmp) will store the following addresses in tmp for the given currentCell addresses:  currentCell tmp D4 C4 C4 A4 D1 A1 D2 B2 B2 A2 This method is used when processing the End,Left Arrow key combination. void ═══ 2.12.3.10. MMesaModel::isAddress() ═══ isAddress(const char *, const MAddress *, MAddress *, int &) [virtual] const char * String to parse const MAddress * Base address to merge with address in string MAddress * Storage location for address int & Storage location for string length Determines whether or not the given string represents a valid cell address. If so, stores the absolute address it represents (if the address is relative, it is merged with the base cell to obtain an absolute address) and the string length. Returns 1 if the string represents an address, 0 otherwise. int ═══ 2.12.3.11. MMesaModel::isMultiRange() ═══ isMultiRange(const char *, const MAddress *, MRange *, int &len) [virtual] const char * String to parse const MAddress * Base address MRange * Storage location for address int & Storage location for string length Determines whether or not the given string represents the address of a valid discontinuous range (e.g.; [A]A1:B30,[B]A1:C15,[Summary]C20:C22 ). If so, stores the absolute range it represents (if the address is relative, it is merged with the base cell to obtain an absolute address) and the string length. Returns 1 if the string refers to a discontinuous range; 0 otherwise. int ═══ 2.12.3.12. MMesaModel::rangeToStr() ═══ rangeToStr(const MRange *, const MAddress *, char *&, int &) [virtual] const MRange * Range to be converted const MAddress * Base address char *& Storage location for string int & Storage location for string length Stores the string equivalent of the given range, offset from the given cell if relative, and the length of that string. (Compare with MMesaModel::adToStr().) void ═══ 2.12.4. Removing cells ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.4.1. MMesaModel::clear() ═══ clear(const MSelection *, const MSelection *, int, MException *) const MSelection * Selection to clear const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") MException * Storage location for errors If the given selection includes a frame, then the frame is removed from the model's frame list. Otherwise, every cell in the selected range is removed from the model's cell list. void ═══ 2.12.4.2. MMesaModel::clearRange() ═══ clearRange(const MRange *, const MSelection *, int, MException *) const MRange * Range to clear const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") MException * Storage location for errors Removes every cell in the given range from the model's cell list. void  MMesaModel::cut()  MMesaModel::clearSpecialRange() ═══ 2.12.5. Retrieving the contents or value of cells ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.5.1. MMesaModel::getCellString() ═══ getCellString(const MAddress *) [virtual] const MAddress * Address of cell to return input string for Returns the input string of the given cell - that is, a string which a user could enter into that cell in order to duplicate its contents. char * ═══ 2.12.5.2. MMesaModel::getCellValue() ═══ getCellValue(const MAddress *) [virtual] const MAddress * Address to get value of Returns the value of the given cell. char * ═══ 2.12.5.3. MMesaModel::getCellValueToAddInValue() ═══ getCellValueToAddInValue(void *) [virtual] void * Pointer to AddIn value Reads address information (if any) from the given AddIn parameter, then stores the contents and value type (see "Cell type constants") of the cell at that address (or of default cell, if no address is given) in the AddIn parameter. void ═══ 2.12.5.4. MMesaModel::isCellNonBlank() ═══ isCellNonBlank(const MAddress *) [virtual] const MAddress * Which cell? Returns 0 if given cell is empty, 1 otherwise. int ═══ 2.12.6. Changing the contents or value of cells ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.6.1. MMesaModel::clearSpecialRange() ═══ clearSpecialRange(const MRange *, int, const MSelection *, int, MException *) const MRange * Range to clear int Clearing type. const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") MException * Storage location for errors Removes some, but not necessarily all, of the contents of the cells in the given range. What subset is removed depends on the given clearing type (see "Clear special constants"). void ═══ 2.12.6.2. MMesaModel::convertRange() ═══ convertRange(const MRange *, int func, const MSelection *, int, MException *) const MRange * Range to convert int func What kind of conversion? const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") MException * Storage location for errors Converts the cells in the given range from one form to another, depending on type of conversion (see "Conversion constants"). void ═══ 2.12.6.3. MMesaModel::setCellToAddInValue() ═══ setCellToAddInValue(void *, int) [virtual] void * Pointer to AddIn value int action Action to perform (see "Action ID constants") Reads a cell address, contents, and value type (see "Cell type constants") from the given AddIn parameter, then sets the cell at that address to the given values. int ═══ 2.12.6.4. MMesaModel::setCellToString() ═══ setCellToString(const MAddress *, const char *, int, MException *, const MSelection *) const MAddress * Address of cell to set const char * RPN string to set the cell to int Action to perform (see "Action ID constants") MException * Storage location for errors const MSelection * Current selection (to be journaled for undo/redo purposes) Sets the given cell's contents to the given string. void ═══ 2.12.7. Retrieving the position of cells ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.7.1. MMesaModel::getRectForAd() ═══ getRectForAd(const MAddress *, const MAddress *, MRect *) const MAddress * Upper-left corner of the display const MAddress * Address to get rectangle for MRect * Storage location Stores the bounding rectangle for the given cell. void ═══ 2.12.7.2. MMesaModel::getRectForRange() ═══ getRectForRange(const MAddress *, const MAddress *, const MAddress *, MRect *) [virtual] const MAddress * Upper-left corner of the display const MAddress * Upper-left corner of the range const MAddress * Lower-right corner of the range MRect * Storage location Stores the bounding rectangle for the given range. void getRectForRange(const MAddress *, const MRange *, MRect *) [virtual] const MAddress * Upper-left corner of the display const MRange * Range MRect * Storage for the bounding rectangle Stores the bounding rectangle for the given range. void ═══ 2.12.8. Filling ranges of cells ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.8.1. MMesaModel::autoRange() ═══ autoRange(const MRange *, int, const MSelection *, int, MException *) const MRange * Selected range int Which function? (see "SmartMath function constants") const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") MException * Storage location for errors Based on the current selection, determines the range to use as an argument to the given function, then inserts a formula using the given function and the calculated argument into every selected cell. If a single cell is selected and there is a numeric value in the cell immediately above it, the range is all the cells above the current cell in the same column that contain a continuous series of values. If there is no numeric value above the selected cell, but there is a numeric value to the left of the selected cell, the range is all the cells to the left of the current cell in the same row that contain a continuous series of values. If all the selected cells are empty and in the same row, the range is all the cells above the selected range (in the same column) that contain a continuous series of values. If there are no values above a selected cell, the method does nothing. If all the selected cells are empty and in the same column, the range is all the cells to the left of the selected range (in the same row) that contain a continuous series of values. If there are no values to the left of a selected cell, the method does nothing. If a rectangular range is selected, the range is the last row or last column if either is empty, or both if both are empty. If neither is empty, the range is the last row. void ═══ 2.12.8.2. MMesaModel::copyCells() ═══ copyCells(const MRange *, const MAddress *, int, MException *, const MSelection *) [virtual] const MRange * Range of cells to copy from const MAddress * Offset int Action to perform (see "Action ID constants") MException * Storage location for errors const MSelection * Current selection (to be journaled for undo/redo purposes) Copies a range of cells from their current position to a position offset by the given relative address (see also MMesaModel::copy() ). void ═══ 2.12.8.3. MMesaModel::fillDown() ═══ fillDown(const MRange *, int, const MSelection *, MException *) [virtual] const MRange * Range to fill int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Copies the contents of each cell in the first row of the given range into every cell in the same column, in the given range. If the range is large enough, triggers MGController::percentComplete()=0. void ═══ 2.12.8.4. MMesaModel::fillRight() ═══ fillRight(const MRange *, int, const MSelection *, MException *) [virtual] const MRange * Range to fill int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Copies the contents of each cell in the first column of the given range into every cell in the same row, in the given range. If the range is large enough, triggers MGController::percentComplete()=0. void ═══ 2.12.8.5. MMesaModel::fillSmartDown() ═══ fillSmartDown(const MRange *, int, const MSelection *, MException *) [virtual] const MRange * Range to fill int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Enters a formula into each cell in the given range, except those in the first row of that range. The function used in each formula depends on the contents of the top cell - that is, the cell in the first row of the given range and in the same column as the cell being edited. If the top cell contains a formula, then the SAME() function is used. If the top cell contains a number or a string, then the NEXT() function is used. Similarly, the argument used in each formula depends on the contents of the top cell. If a formula, then each formula includes an absolute reference to the top cell. If a string or number, then each formula includes a relative reference to the cell immediately above it. For example, if cells A1 through C3 have the following contents:  A B C R1: 100 Text =INT(RAND * 10) R2: 200 More text =INT(RAND * 100) R3: 300 Still more text =INT(RAND * 1000) ...and range is an MRange instance representing the range A1:C3, then fillSmartDown(range, action, sel, exc) will generate (overwriting the previous contents of A2:C3) the following:  A B C R1: 100 Text =INT(RAND * 10) R2: =NEXT(A1) =NEXT(B1) =SAME( cket.$A]$C$1) R3: =NEXT(A2) =NEXT(B2) =SAME( cket.$A]$C$1) If the range is large enough, triggers MGController::percentComplete()=0. void ═══ 2.12.8.6. MMesaModel::fillSmartRight() ═══ fillSmartRight(const MRange *, int, const MSelection *, MException *) [virtual] const MRange * Range to fill int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Enters a formula into each cell in the given range, except those in the first column of that range. The function used in each formula depends on the contents of the left cell - that is, the cell in the first column of the given range and in the same row as the cell being edited. If the left cell contains a formula, then the SAME() function is used. If the left cell contains a number or a string, then the NEXT() function is used. Similarly, the argument used in each formula depends on the contents of the left cell. If a formula, then each formula includes an absolute reference to the left cell. If a string or number, then each formula includes a relative reference to the cell immediately to its left. For example, if cells A1 through C3 have the following contents:  A B C R1: 100 Text =INT(RAND * 10) R2: 200 More text =INT(RAND * 100) R3: 300 Still more text =INT(RAND * 1000) ...and range is an MRange instance representing the range A1:C3, then fillSmartRight(range, action, sel, exc) will generate (overwriting the previous contents of A2:C3) the following:  A B C R1: 100 =NEXT(A1) =NEXT(B1) R2: 200 =NEXT(A2) =NEXT(B2) R3: 300 =NEXT(A3) =NEXT(B3) If the range is large enough, triggers MGController::percentComplete()=0. void ═══ 2.12.8.7. MMesaModel::fillSmartWithCell() ═══ fillSmartWithCell(const MAddress *, const MRange *, int, const MSelection *, MException *) [virtual] const MAddress * Address of the base cell const MRange * Range to fill int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Enters a formula into each cell in the given range, except the base cell. The function used in each formula depends on the contents of the base cell. If the base cell contains a formula, then the SAME() function is used. If the base cell contains a number or a string, then the NEXT() function is used. The argument used in each formula is a relative reference to an adjacent cell in the direction of the base cell, where vertical references have priority over horizontal ones. For example, if cells A1 through C3 have the following contents:  A B C R1: 100 Text =INT(RAND * 10) R2: 200 More text =INT(RAND * 100) R3: 300 Still more text =INT(RAND * 1000) ...and range is an MRange instance representing the range A1:C3, and cell is an MAddress instance representing cell B2, then fillSmartWithCell(cell,range, action, sel, exc) will generate (overwriting the previous contents of A2:C3) the following:  A B C R1: =NEXT(A2) =NEXT(B2) =NEXT(C2 ar. R2: =NEXT(B2) More text =NEXT(B2) R3: =NEXT(A2) =NEXT(B2) =NEXT(C2 ar. If the range is large enough, triggers MGController::percentComplete()=0. void ═══ 2.12.8.8. MMesaModel::fillWithCell() ═══ fillWithCell(const MAddress *, const MRange *, int, const MSelection *, MException *) [virtual] const MAddress * Address of base cell const MRange * Range to fill int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Copies the contents of the base cell into every other cell in the given range. If the range is large enough, triggers MGController::percentComplete()=0. void ═══ 2.12.8.9. MMesaModel::importText() ═══ importText(MStream *, const MAddress *, int, const MSelection *, MException *) [virtual] MStream *st Input stream const MAddress * MAddress to store it in int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Reads text from st (see MStream) and places it in the given address. If the character being read is a tab or a newline, then the character is ignored and the destination address is offset by one column or one row, respectively. void ═══ 2.12.8.10. MMesaModel::moveCells() ═══ moveCells(const MRange *, const MAddress *, int, MException *, const MSelection *) [virtual] const MRange * Source range const MAddress * Offset to move them int Action to perform (see "Action ID constants") MException * Storage location for errors const MSelection * Current selection (to be journaled for undo/redo purposes) Changes the location of each of the given cells by the given offset, replacing the existing cells at that location if there are any. If the new location is beyond the existing boundaries of the layer, expands the layer. void ═══ 2.12.9. Sorting ranges of cells ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.9.1. MMesaModel::sort() ═══ sort(const MRange *, int, int, int, int *, int *, int, MSelection *, MException *) [virtual] const MRange * Range to sort int Does the range have titles? 1 for yes, 0 for no int Sort by row or by column? 1 for column, 0 for row. int Number of sort keys int * Array of integers for each sort key, each defining the row or column for that key (stored as an offset into the range) int * Array of one integer for each sort key, each indicating the sort order for that key (1 for ascending, -1 for descending) int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Sorts the contents of the range. Each data series in the range (see below) is sorted based on the values in its key cell(s) and the sort order defined for that key (if ascending, then cell contents are ordered first to last from top to bottom; if descending, they are ordered first to last from bottom to top). Up to 6 keys can be defined. The second key is used only to resolve if the values of the first key cells of two data series are identical (the third is used to resolve ties of the second, and so forth). If the range has titles, the first data series in the range is ignored. A data series is a row, if the range is being sorted by row, or a column, if the range is being sorted by column. For example, given the following cells in range:  Col 0 Col 1 Col 2 Col 3 Row 0 ID Date Day Color Row 1 42 26-Aug-95 Sat Blue Row 2 96 19-Mar-95 Sun Red Row 3 19 02-Aug-95 Wed Green Row 4 42 17-Jul-95 Mon Orange Row 5 35 09-Jun-95 Fri Blue Row 6 97 08-Oct-95 Sun Red ...and given an integer array keys = {3,2, 0} and an integer array order = {1, -1, 1}, then sort(range, 1,0,3,keys, order, defaultAction, &sel, &tmp) will change the range to the following:  Col 0 Col 1 Col 2 Col 3 Row 0 ID Date Day Color Row 1 42 26-Aug-95 Sat Blue Row 2 35 09-Jun-95 Fri Blue Row 3 96 19-Mar-95 Sun Green Row 4 42 17-Jul-95 Mon Orange Row 5 19 02-Aug-95 Wed Red Row 6 97 08-Oct-95 Sun Red Notice that row 0 is unchanged. Given order = {-1, -1, 1} instead, then sort(range, 1,0,3,keys, order, defaultAction, &sel, &tmp) will change the range to the following:  Col 0 Col 1 Col 2 Col 3 Row 0 ID Date Day Color Row 1 19 02-Aug-95 Wed Red Row 2 97 08-Oct-95 Sun Red Row 3 42 17-Jul-95 Mon Orange Row 4 96 19-Mar-95 Sun Green Row 5 42 26-Aug-95 Sat Blue Row 6 35 09-Jun-95 Fri Blue void ═══ 2.12.10. Labelled and autogrow ranges ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.10.1. MMesaModel::autoGrow() ═══ autoGrow(const MAddress *, const MRange *, int, const MSelection *, MException *) [virtual] const MAddress * Base cell const MRange * Selected range int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors If the base cell is at the lower edge of the selected range (see MRange::isAtLowerEdge()), and the range has been named and defined as an autogrow range (see MRange::isAutoGrow()), extends the selected range by one row and redefines the named range to include the new row. void ═══ 2.12.10.2. MMesaModel::deleteLabel() ═══ deleteLabel(const char *, int, const MSelection *) [virtual] const char * Label name int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Removes the given label from the model's labelled ranges list. void ═══ 2.12.10.3. MMesaModel::findLabel() ═══ findLabel(const char *, MRange *) [virtual] const char * Label to look for MRange * Storage location Locates the range associated with the given label and stores it. Returns 1 if the range is found, 0 otherwise. int ═══ 2.12.10.4. MMesaModel::getLabel() ═══ getLabel(int, MRange *) [virtual] int Index into label list MRange * Storage location Stores the range associated with the given label, and returns the label name. char * ═══ 2.12.10.5. MMesaModel::getLabelNames() ═══ getLabelNames(int &) [virtual] int & Storage for number of items Returns string array of label names in model and stores the number of items in that list. char ** ═══ 2.12.10.6. MMesaModel::numberOfLabels() ═══ numberOfLabels() [virtual] Returns number of labelled ranges defined in the model. int ═══ 2.12.10.7. MMesaModel::setLabel() ═══ setLabel(const char *, const MRange *, int, const MSelection *) [virtual] const char * Label const MRange * Range int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Adds the given label, associated with the given range, to the model's label list. void ═══ 2.12.10.8. MMesaModel::shouldAutoGrow() ═══ shouldAutoGrow(const MAddress *, const MRange *) [virtual] const MAddress * Current base cell const MRange * Current range Returns 1 if the given range is defined as autogrow in the model's label list, and if the base cell is at the lower edge of that range; 0 otherwise. int ═══ 2.12.11. Frame list ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.11.1. MMesaModel::getFrameNames() ═══ getFrameNames(int &) [virtual] int & Storage location Returns the list of frame names, and stores the number of items in the list. char ** ═══ 2.12.12. Adding a frame ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.12.1. MMesaModel::addFrame() ═══ addFrame(const MPoint *, const MAddress *, MFrame *, int, const MSelection *) const MPoint * Point to display the frame at const MAddress * Cell to anchor at MFrame * Frame to be added int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Adds the given frame to the model's frame list (see MFrameXfer). Returns name of the frame. char * ═══ 2.12.12.2. MMesaModel::addImage() ═══ addImage(const MPoint *, const MAddress *, MImage *, int, const MSelection *) const MPoint * Point to display the image at const MAddress * Cell to anchor at MImage * Image to be added int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Adds the given image to the model's image list. Returns name of the image. char * ═══ 2.12.12.3. MMesaModel::createGraph() ═══ createGraph(MRect *, const MAddress *, int, const MRange *, int, const MSelection *) [virtual] MRect * Size and position of graph const MAddress * Anchor cell for graph frame int What type of graph (see "Frame constants")? const MRange * Range to be graphed int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Creates a graph of the given type and the given data at the given location, anchored to the given cell. Returns the frame name of the graph. char * ═══ 2.12.12.4. MMesaModel::duplicateFrame() ═══ duplicateFrame(const char *, const MPoint *, const char *, int, const MSelection *) [virtual] const char * Name of frame to duplicate const MPoint * Position of upper-left corner of new frame const char * Unused int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Creates a copy of the named frame at the given position. void ═══ 2.12.12.5. MMesaModel::newShape() ═══ newShape(int, const MAddress *, const MRect *, int, int, int, const MSelection *) [virtual] int Type of shape (see "Shape and imported graphic type constants") const MAddress * Anchor cell const MRect * Position for shape int Line width int Line type (arrowheads) int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Creates a new frame of the given type at the given position with the given parameters. void ═══ 2.12.13. Removing a frame ═══ There are no methods designed exclusively to remove frames from a model. However, MMesaModel::cut() and MMesaModel::clear() will both delete a frame if it is included within the initial selection parameter. ═══ 2.12.14. Identifying the position of a frame ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.14.1. MMesaModel::frameAtPoint() ═══ frameAtPoint(const MAddress *, const MPoint *, char **) [virtual] const MAddress * Upper-left corner of display const MPoint * Point (in sheet coordinates) char ** Storage location Identifies the frame at the given point if one exists (or the uppermost frame if there are several frames at that point), and stores the frame name. Returns 1 if a frame is found, 0 otherwise. int ═══ 2.12.14.2. MMesaModel::getCornerForFrame() ═══ getCornerForFrame(const char *, const MAddress *, const MPoint *) [virtual] const char * Frame name to look for const MAddress * Upper left corner of display (used for translating between frame and sheet coordinates) const MPoint * Point Identifies the corner of the given frame (if any) represented by the given point. This is particularly useful for determining whether the a frame is being resized. Return 0 if the point is not a corner of the frame, or the corner ID if it is (see "Frame corner constants"). int ═══ 2.12.14.3. MMesaModel::getRectForFrame() ═══ getRectForFrame(const MAddress *, const char *, MRect *) [virtual] const MAddress * Upper-left corner of display const char * Frame name MRect * Storage location Stores the bounding rectangle for the given frame, if it exists. Returns 1 if the frame exists, 0 otherwise. int ═══ 2.12.14.4. MMesaModel::isFrameAt() ═══ isFrameAt(int, const MRect *) [virtual] int Which layer? const MRect * Rectangle parameter Compares the position of each frame in the model frame list to that of the given rectangle. Returns 1 if there is a match, 0 otherwise. int ═══ 2.12.15. Retrieving frame settings ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.15.1. MMesaModel::frameHasText() ═══ frameHasText(const char *frame) [virtual] const char *frame Frame name Returns 1 if the named frame contains text, 0 otherwise. int ═══ 2.12.15.2. MMesaModel::getFrameText() ═══ getFrameText(const char *frame) [virtual] const char *frame Frame name If the named frame has text in it, returns the text in frame. char * ═══ 2.12.15.3. MMesaModel::getFrameInfo() ═══ getFrameInfo(const char *) [virtual] const char * Frame name Returns an MFrameXfer instance including the settings of the named frame. MFrameXfer * ═══ 2.12.16. Changing frame settings ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.16.1. MMesaModel::setFrameInfo() ═══ setFrameInfo(const char *, const MFrameXfer *, int, const MSelection *) [virtual] const char * Frame name const MFrameXfer * New frame settings int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Applies the given frame settings to the given frame. For more information, see "MFrameXfer". void ═══ 2.12.16.2. MMesaModel::setFrameOrder() ═══ setFrameOrder(const char *, int, int, const MSelection *) [virtual] const char * Frame name int Order. Top is 1, bottom is 0 int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Moves the given frame to the top or the bottom of the frame stacking order. void ═══ 2.12.16.3. MMesaModel::setFrameText() ═══ setFrameText(const char *frame, char *text, int, const MSelection *sel) [virtual] const char *frame Frame name char *text New text int action Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Adds the given text to the given frame. void ═══ 2.12.16.4. MMesaModel::setFrameToType() ═══ setFrameToType(const char *, int, int, const MSelection *) [virtual] const char * Frame name int New frame type int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Sets the frame type of the given frame (see "Frame constants"). void ═══ 2.12.17. Format list ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.17.1. MMesaModel::getCurSymbols() ═══ getCurSymbols() [virtual] Returns string array of all the currency symbols in use within the given model. (Compare with MGController::getCurrencyChars().). For more information, see "Currency and numeric symbols". char ** ═══ 2.12.17.2. MMesaModel::getFontNum() ═══ getFontNum(const MFont *) [virtual] const MFont * Font Return index into the model's font list for the given font. int ═══ 2.12.17.3. MMesaModel::setCurSymbols() ═══ setCurSymbols(char **, int, const MSelection *) [virtual] char ** New currency-symbol array int Action to perform (see "Action ID constants") MException * Storage location for errors const MSelection * Current selection (to be journaled for undo/redo purposes) Sets the currency-symbol array for the current model. For more information, see "Currency and numeric symbols". void ═══ 2.12.18. Retrieving and changing the format of a cell ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.18.1. MMesaModel::doGridBorder() ═══ doGridBorder(const MSelection *, int, int, const MSelection *, MException *) [virtual] const MSelection * Selection to draw border around int Packed int structure telling what kind of border/grid to draw int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Changes the border settings in the format of some or all of the selected cells based on the packed integer parameter, as follows:  Bit Meaning Values 0: Outline 1 for yes, 0 for no 1: Grid 1 for yes, 0 for no 2-3: Left border Size in pixels 4: Left border 1 for draw, 0 for don't draw 5-6: Right border Size in pixels 7: Right border 1 for draw, 0 for don't draw 8-9: Top border Size in pixels 10: Top border 1 for draw, 0 for don't draw 11-12: Bottom border Size in pixels 13: Bottom border 1 for draw, 0 for don't draw void ═══ 2.12.18.2. MMesaModel::getFormatAndFontForCell() ═══ getFormatAndFontForCell(const MAddress *, MFormat *, MFont *) [virtual] const MAddress * Address of cell MFormat * Storage location for format MFont * Storage location for font Stores the format and font for the given cell. Always returns 0 (return value is reserved for future use). int ═══ 2.12.18.3. MMesaModel::setFont() ═══ setFont(const char *, int, const MRange *, int, const MSelection *, MException *) [virtual] const char * Font name int Font size (in points) const MRange * Range int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Sets every cell in the given range to the given font and size. For more information, see "MFormat". void ═══ 2.12.18.4. MMesaModel::setFontAttribute() ═══ setFontAttribute(int, const MRange *, int, const MSelection *, MException *) [virtual] int Attribute const MRange * Range int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Applies the given attribute (see "Font attribute constants") to the font of every cell in the given range. For more information, see "MFont". void ═══ 2.12.18.5. MMesaModel::setFontForLayer() ═══ setFontForLayer(int layer, const MFont *, int, const MSelection *, MException *) [virtual] int layer Which layer? const MFont * New font int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Sets the given font as the default font for all cells in the given layer. void ═══ 2.12.18.6. MMesaModel::setRangeToFont() ═══ setRangeToFont(const MRange *, const MFont *, int, const MSelection *, MException *) [virtual] const MRange * Range const MFont * New font int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Sets the font of all cells within the given range to the given font (see MFont). void ═══ 2.12.18.7. MMesaModel::setRangeToFormat() ═══ setRangeToFormat(const MRange *, const MFormat *, int, const MSelection *, MException *) [virtual] const MRange * Range const MFormat * New format int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Sets the format of all cells within the given range to the given format (see MFormat). void  MMesaModel::clearSpecialRange() ═══ 2.12.19. Changing the format of a frame ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.19.1. MMesaModel::bkgColorDroppedOnFrameAt() ═══ bkgColorDroppedOnFrameAt(MColor, const char *, const MAddress *, const MPoint *, const MSelection *, int) [virtual] MColor What color was dropped? const char * Frame name const MAddress * Upper-left cell displayed in sheet view (used to convert window coordinates into frame coordinates) const MPoint * Where was it dropped (in window coordinates)? const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") If the named frame exists in the model and can change color, sets the background color of the frame. Otherwise, does nothing. void ═══ 2.12.19.2. MMesaModel::colorDroppedOnFrameAt() ═══ colorDroppedOnFrameAt(MColor, const char *, const MAddress *, const MPoint *, const MSelection *, int) [virtual] MColor What color was dropped? const char * Frame name const MAddress * Upper-left cell displayed in sheet view (used to convert window coordinates into frame coordinates) const MPoint * Where was it dropped (in window coordinates)? const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") If the named frame exists in the model and can change color, sets the foreground color of the frame. Otherwise, does nothing. void ═══ 2.12.19.3. MMesaModel::fontDroppedOnFrameAt() ═══ fontDroppedOnFrameAt(const MFont *, const char *, const MAddress *, const MPoint *, const MSelection *, int) [virtual] const MFont * Font that was dropped const char * Name of the frame the font was dropped on const MAddress * Current cell const MPoint * Location of the drop (in sheet coordinates) const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") If the given frame exists and can change font, makes the font change. void ═══ 2.12.20. Layer list ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.20.1. MMesaModel::deleteLayer() ═══ deleteLayer(int, int, MException *, const MSelection *) [virtual] int Layer to delete int Action to perform (see "Action ID constants") MException * Storage location for errors const MSelection * Current selection (to be journaled for undo/redo purposes) Deletes the given layer from the model. void ═══ 2.12.20.2. MMesaModel::getLayerNames() ═══ getLayerNames(int &) [virtual] int & Storage for number of items Return string array of user-defined layer names in the model. Default names (e.g.; A, B, etc) are not included. char ** ═══ 2.12.20.3. MMesaModel::getNumLayers() ═══ getNumLayers() Returns the number of layers in the model. int ═══ 2.12.20.4. MMesaModel::newLayer() ═══ newLayer(int, MException *, const MSelection *) [virtual] int Action to perform (see "Action ID constants") MException * Storage location for errors const MSelection * Current selection (to be journaled for undo/redo purposes) Adds a new layer to the bottom of the current worksheet. void ═══ 2.12.21. Retrieving layer settings ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.21.1. MMesaModel::getExtents() ═══ getExtents(int, int &, int &) int What layer are we interested in? int & Storage for number of rows int & Storage for number of columns Stores the number of rows and columns in the given layer. void ═══ 2.12.21.2. MMesaModel::getLayerGrid() ═══ getLayerGrid(int) [virtual] int Which layer? Returns 1 if the specified layer is showing grid-lines, 0 otherwise. int ═══ 2.12.21.3. MMesaModel::getLayerName() ═══ getLayerName(int n) [virtual] int n Which layer? Returns the name of the given layer. By default, the first layer is named A, the second B, and so forth; layers can be renamed by the user. char * ═══ 2.12.21.4. MMesaModel::getLayerProtection() ═══ getLayerProtection(int) [virtual] int Which layer? Return 1 if the layer is protected, 0 otherwise. int ═══ 2.12.22. Changing layer settings ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.22.1. MMesaModel::setExtents() ═══ setExtents(int, int, int, int, const MSelection *, MException *) [virtual] int Which layer? int New number of rows int New number of columns int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Sets the number of rows and columns in the given layer. void ═══ 2.12.22.2. MMesaModel::setLayerColor() ═══ setLayerColor(int, MColor, int, int, const MSelection *, MException *) [virtual] int Which layer? MColor What color? int What layer component? int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Sets the given component of the given layer (see "Layer component constants") to the given color. void ═══ 2.12.22.3. MMesaModel::setLayerGrid() ═══ setLayerGrid(int, int, int, const MSelection *) [virtual] int Which layer? int Show grid? (1 for yes, 0 for no) int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Sets the given layer's grid-display status. void ═══ 2.12.22.4. MMesaModel::setLayerName() ═══ setLayerName(int, const char *, int, const MSelection *) [virtual] int Which layer? const char * New name int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Changes the name of the given layer. void ═══ 2.12.22.5. MMesaModel::setLayerProtection() ═══ setLayerProtection(int, int, int, const MSelection *) [virtual] int Which layer? int Protected? (1 for yes, 0 for no) int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Sets the protection status of the given layer. void ═══ 2.12.23. Retrieving row and column sizes ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.23.1. MMesaModel::getColumnSize() ═══ getColumnSize(int layer, int column) [virtual] int layer Which layer? int column Which column? Returns the width (in pixels) of the given column. int ═══ 2.12.23.2. MMesaModel::getDefaultCellSize() ═══ getDefaultCellSize(int, int &, int &) [virtual] int Layer int & Storage for default width int & Storage for default height Stores the default cell height and width for the given layer. void ═══ 2.12.23.3. MMesaModel::getRowSize() ═══ getRowSize(int layer, int row) [virtual] int layer Which layer? int row Which row? Returns the size of the given row (in pixels). int ═══ 2.12.23.4. MMesaModel::getRulerHi() ═══ getRulerHi() [virtual] Returns the height of row headings, in pixels. int ═══ 2.12.23.5. MMesaModel::getRulerWid() ═══ getRulerWid() [virtual] Returns the width of column headings, in pixels. int ═══ 2.12.23.6. MMesaModel::isColHidden() ═══ isColHidden(int, int) [virtual] int Which layer? int Which column? Returns 1 if the given column is hidden in the given layer, 0 otherwise. int ═══ 2.12.23.7. MMesaModel::isRowHidden() ═══ isRowHidden(int, int) [virtual] int Which layer? int Which row? Returns 1 if the given row is hidden in the given layer, 0 otherwise. int ═══ 2.12.24. Changing row and column sizes ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.24.1. MMesaModel::setColumnSize() ═══ setColumnSize(const MRange *, int, const MSelection *, int, MException *) [virtual] const MRange * Range to resize int New size (in pixels) const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") MException * Storage location for errors Sets the column width for all columns containing cells in the given range to the new size. void ═══ 2.12.24.2. MMesaModel::setDefaultCellSize() ═══ setDefaultCellSize(int, int, int, int, const MSelection *) [virtual] int Which layer? int New default width int New default height int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Sets the default cell size for the given layer. void ═══ 2.12.24.3. MMesaModel::setRowSize() ═══ setRowSize(const MRange *, int, const MSelection *, int, MException *) [virtual] const MRange * Range to resize int New size (in pixels) const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") MException * Storage location for errors Sets the row height for all rows containing cells in the given range to the new size. void ═══ 2.12.24.4. MMesaModel::smartSizeColumns() ═══ smartSizeColumns( const MRange *, int, const MSelection *, MException * ) [virtual] const MRange * Range int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Calculates a new column width for each column containing cells in the given range, and resizes the columns accordingly. The new column size is equal to the maximum of the widths of the contents of the selected cells in that column. void ═══ 2.12.24.5. MMesaModel::smartSizeRows() ═══ smartSizeRows( const MRange *, int, const MSelection *, MException * ) [virtual] const MRange * Range int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Calculates a new row height for each row containing cells in the given range, and resizes the rows accordingly. The new row size is equal to the maximum of the heights of the contents of the selected cells in that row. void ═══ 2.12.25. Script list ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.25.1. MMesaModel::deleteScript() ═══ deleteScript(const char *, int, const MSelection *) [virtual] const char * Script name int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Deletes the named script from the current sheet. void ═══ 2.12.25.2. MMesaModel::executeCloseScripts() ═══ executeCloseScripts() [virtual] Identifies the scripts in the model's script list that are marked to execute when the model is closed, and adds them to the controller's script queue (see MGController::addScriptToQueue()). void ═══ 2.12.25.3. MMesaModel::executeOpenScripts() ═══ executeOpenScripts() [virtual] Identifies the scripts in the model's script list that are marked to execute when the model is opened, and adds them to the controller's script queue (see MGController::addScriptToQueue()). void ═══ 2.12.25.4. MMesaModel::getNextScriptName() ═══ getNextScriptName() [virtual] Returns the first string of the form Script### (e.g.; Script001, Script002, etc) that is not already included in the model's script name list. char * ═══ 2.12.25.5. MMesaModel::getNumScripts() ═══ getNumScripts() [virtual] Returns the number of scripts in the model. int ═══ 2.12.25.6. MMesaModel::getScriptNames() ═══ getScriptNames(int &) [virtual] int & Storage for number of elements in array Returns string array of script names. char ** ═══ 2.12.25.7. MMesaModel::hasCloseScripts() ═══ hasCloseScripts() Returns 1 if any scripts in the model are set to execute when the model is closed; 0 otherwise. int ═══ 2.12.26. Retrieving script settings ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.26.1. MMesaModel::getScript() ═══ getScript(const char *) [virtual] const char * Script name Returns the executable REXX program for the named script. char * getScript(int) [virtual] int Index into script list Returns the executable REXX program for the named script. char * ═══ 2.12.26.2. MMesaModel::getScriptInfo() ═══ getScriptInfo(const char *) [virtual] const char * Script name Returns a packed integer for the named script, indicating whether the script is set to execute automatically when the model opens or closes. int ═══ 2.12.26.3. MMesaModel::getScriptName() ═══ getScriptName(int) [virtual] int Index into script list Returns name of the given script. char * ═══ 2.12.27. Changing script settings ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.27.1. MMesaModel::setScript() ═══ setScript(const char *, const char *, int, int, const MSelection *) [virtual] const char * Name of script const char * Executable script text int Packed integer containing script-execution settings int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Adds an entry with the given values to the model's script list. void ═══ 2.12.27.2. MMesaModel::setScriptInfo() ═══ setScriptInfo(const char *, int, int, const MSelection *) [virtual] const char * Script name int New script info settings int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Sets the script info value for the named script. Script info is a packed integer which currently contains script-execution settings (execute on close, execute on open). void ═══ 2.12.27.3. MMesaModel::setScriptName() ═══ setScriptName(int, const char *, int, const MSelection *) [virtual] int Index into script list const char * New name for the script int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Sets the name of the given script. void ═══ 2.12.28. Displaying the model ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.28.1. MMesaModel::drawInto() ═══ drawInto(MDraw *, const MRect *, const MRect *, const MAddress *, const MSelection *, int,const MSelection *, float, float, int, const char **,const MAddress *, const char *, int,int) [virtual] MDraw * Handle to the drawing space to draw into const MRect * The rectangle defining the entire page to be written on const MRect * The rectangle defining the area to draw/update const MAddress * Address of cell in upper-left corner of region to be displayed const MSelection * Current selection (to be journaled for undo/redo purposes) int Flags to control the drawing (see "Frame drawing constants") MSelection * Cell or range being selected as a reference via keyboard commands, if any; defaults to 0 float Height of the column headers float Width of the row headers int Number of column titles in the model, if any; defaults to -1 const char** Text of column titles in the model, if any; defaults to NULL const MAddress * Address of the cell being edited using in-cell editing, if any; defaults to NULL const char * Unused; defaults to NULL int Unused; defaults to -1 int Unused; defaults to -1 Draws the appropriate part of spreadsheet, including all displayed frames, cells, etc., based on the given flags (see "Frame drawing constants"). void ═══ 2.12.28.2. MMesaModel::redisplay() ═══ redisplay() [virtual] Redisplays the model. void ═══ 2.12.29. Window list ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.29.1. MMesaModel::getPosition() ═══ getPosition() [virtual] Returns an MPosition instance representing the current positions of all the windows associated with the given model (see Other Mesa-specific classes). MPosition * ═══ 2.12.29.2. MMesaModel::getScale() ═══ getScale(float *scArray) [virtual] float *scArray Array of storage locations Stores the magnification setting for each window in the model's window list (up to 32 windows). void ═══ 2.12.29.3. MMesaModel::setPosition() ═══ setPosition(const MPosition *) [virtual] const MPosition * New window-position information Sets the positions of the windows in the model's window list (see Other Mesa-specific classes). void ═══ 2.12.29.4. MMesaModel::setScale() ═══ setScale(float *scArray) [virtual] float *scArray Array of storage locations Sets the magnification setting for each window in the model's window list (up to 32 windows). void ═══ 2.12.30. Recalculation ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.30.1. MMesaModel::getAutoRecalc() ═══ getAutoRecalc() [virtual] Returns 1 if automatic recalculation is set; 0 otherwise. int ═══ 2.12.30.2. MMesaModel::getHasChanged() ═══ getHasChanged() [virtual] Returns 1 if the model has changed since the last recalculation, 0 if not. int ═══ 2.12.30.3. MMesaModel::getRecalcIterations() ═══ getRecalcIterations() [virtual] Returns the number of times the model should be recalculated per recalculation event. This is only meaningful if the recalculation type is set to rowRecalcOrder, columnRecalcOrder, or allowCircRecalcOrder (see "Recalculation order constants"). int ═══ 2.12.30.4. MMesaModel::getRecalcType() ═══ getRecalcType() [virtual] Returns current recalculation type (see "Recalculation order constants"). int ═══ 2.12.30.5. MMesaModel::recalc() ═══ recalc(const MAddress *, const MRange *, int) [virtual] const MAddress * Base address const MRange * Range to recalculate int Action to perform (see "Action ID constants") Recalculates the given range, offset from the given cell if relative. void recalc(const MAddress *, int) [virtual] const MAddress * Cell to recalculate int Action to perform (see "Action ID constants") Recalculates the given cell. void ═══ 2.12.30.6. MMesaModel::setAutoRecalc() ═══ setAutoRecalc(int, int, const MSelection *) [virtual] int New automatic recalculation setting (1 for on, 0 for off) int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Sets automatic recalculation for the current model on or off. void ═══ 2.12.30.7. MMesaModel::setHasChanged() ═══ setHasChanged(int) [virtual] int New changed status (1 for has changed, 0 for not) Sets the model's changed status, which is used to determine if the model needs to be recalculated. void ═══ 2.12.30.8. MMesaModel::setRecalcIterations() ═══ setRecalcIterations(int, int, const MSelection *) [virtual] int New number of iterations int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Sets the number of recalculation iterations for the current model. void ═══ 2.12.30.9. MMesaModel::setRecalcType() ═══ setRecalcType(int, int, const MSelection *) [virtual] int New recalculation order int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Sets the recalculation order of the current model (see "Recalculation order constants"). void ═══ 2.12.31. Real-time feeds ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.31.1. MMesaModel::getHasFeed() ═══ getHasFeed() [virtual] Returns 1 if the model contains a real-time data feed, 0 otherwise. int ═══ 2.12.32. BLOBs ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.32.1. MMesaModel::getBlobValue() ═══ getBlobValue(const char *name, int &len, void *&blob) [virtual] const char *name Name of BLOB int &len Storage location for BLOB size void *&blob Storage location for BLOB value Searches the model's BLOB list for the given name; if found, stores the BLOB's size and a pointer to the BLOB value. Returns 1 if BLOB is found; 0 otherwise. int ═══ 2.12.32.2. MMesaModel::setBlobValue() ═══ setBlobValue(const char *name, int len, const void *blob) [virtual] const char *name Name of BLOB int len BLOB size void *blob BLOB Adds an entry to the model's BLOB list, allowing miscellaneous additional information about a model to be added (e.g.; by Mesa AddIns) at run-time. void ═══ 2.12.33. Interest list ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.33.1. MMesaModel::getInterestCount() ═══ getInterestCount() [virtual] Returns the number of other objects (models, windows, etc.) which have registered an interest in this model (see MInterest). int ═══ 2.12.33.2. MMesaModel::registerInterest() ═══ registerInterest(MInterest *) [virtual] MInterest * Representation of some object's interest in the model Adds the given interest marker to the model's interest list (see MInterest). void ═══ 2.12.33.3. MMesaModel::unregisterInterest() ═══ unregisterInterest(MInterest *) [virtual] MInterest * Interest marker for no-longer-interested object Removes all interest markers from the same object as the given interest marker from the model's interest list (see MInterest). If, as a consequence, the model's interest list is left empty, the model is closed. void ═══ 2.12.34. DDE links ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.34.1. MMesaModel::addDDEItem() ═══ addDDEItem(const char *, const char *, const char *, const char *, const char *, int, const MSelection *, MException *) [virtual] const char * Item name const char * Program const char * File name const char * Item tag within file const char * Target int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Adds an entry to the model's DDE link table with the given parameters. void ═══ 2.12.34.2. MMesaModel::deleteDDEItem() ═══ deleteDDEItem(int, int, const MSelection *, MException *) [virtual] int Item number int action Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) MException * Storage location for errors Removes the given item from the model's DDE list. void ═══ 2.12.34.3. MMesaModel::getDDEItem() ═══ getDDEItem(int i) [virtual] int i Index into DDE list Returns the given entry in the model's DDE item list. MDDEClientItem * ═══ 2.12.34.4. MMesaModel::getNewDDEClientItem() ═══ getNewDDEClientItem() [virtual] Creates a new MDDEClientItem instance associated with the given model and returns a pointer to it (see Other Mesa-specific classes). MDDEClientItem * ═══ 2.12.34.5. MMesaModel::getNumDDEItems() ═══ getNumDDEItems() [virtual] Returns the number of items in the model's DDE link table. int ═══ 2.12.35. Generic stream I/O ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.35.1. MMesaModel::loadFromStream() ═══ loadFromStream(MStream *ms, int, MException *me) [virtual] MStream *ms Input stream int action Action to perform (see "Action ID constants") MException * Storage location for errors Reads the model's contents from the given stream. void ═══ 2.12.35.2. MMesaModel::saveToStream() ═══ saveToStream(MStream *ms, MException *me) [virtual] MStream *ms Output stream MException * Storage location for errors Writes the model out to the given stream. void ═══ 2.12.36. File I/O ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.36.1. MMesaModel::getFileType() ═══ getFileType() [virtual] Returns the file type identifier for the current model (see also MFileStream::setAttributes() ). int ═══ 2.12.36.2. MMesaModel::getHasPath() ═══ getHasPath() [virtual] Returns 1 if the model includes a full pathname, 0 otherwise. This method is used at save time to determine whether the user should be prompted for a file name. int ═══ 2.12.36.3. MMesaModel::getPassword() ═══ getPassword() [virtual] Returns an MPassword instance representing the current file password, if one exists (see Other Mesa-specific classes). MPassword * ═══ 2.12.36.4. MMesaModel::getPathName() ═══ getPathName() [virtual] Return full pathname for the current sheet (e.g. C:\MESA\EXAMPLES\AUTOLOAD.M2). char * ═══ 2.12.36.5. MMesaModel::loadFromPath() ═══ loadFromPath(int, MException *) [virtual] int Action to perform (see "Action ID constants") MException * Storage location for error Reads the model's contents from the pathname stored with the model. void ═══ 2.12.36.6. MMesaModel::saveToPath() ═══ saveToPath(MException *) [virtual] MException * Storage location for errors Saves the model to the stored pathname, if there is one, or to the file name in the current directory, otherwise. Checks the file name extension and saves in the appropriate format (e.g.; if the extension is WK1, exports the model in WK1 format). void ═══ 2.12.36.7. MMesaModel::setFileType() ═══ setFileType(int) [virtual] int New file type Sets the file type identifier for the current model (see also MFileStream::setAttributes() ). void ═══ 2.12.36.8. MMesaModel::setHasPath() ═══ setHasPath(int) [virtual] int New path status (1 for has path defined, 0 for not) Sets the model's path status, which is used to determine if the user should be prompted for a path name at save time. void ═══ 2.12.36.9. MMesaModel::setPathName() ═══ setPathName(const char *, int) [virtual] const char * New path name int Action to perform (see "Action ID constants") Sets the pathname of the model. void ═══ 2.12.37. Clipboard I/O ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.37.1. MMesaModel::copy() ═══ copy(const MSelection *, int, MClipStream *) [virtual] const MSelection * Selection to copy int Copy type (unused) MClipStream * Output stream to clipboard Copies selection to the output stream (see MClipStream) (see also MMesaModel::copyCells() ). void ═══ 2.12.37.2. MMesaModel::cut() ═══ cut(const MSelection *, int, MClipStream *, const MSelection *, int, MException *) [virtual] const MSelection * Selection to cut to the clipboard int Copy type (unused) MClipStream * Output stream to clipboard const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") MException * Storage location for errors Copies the given selection to the clipboard, then clears the selection from the model. void ═══ 2.12.37.3. MMesaModel::paste() ═══ paste(const MSelection *, int, MClipStream *, const MSelection *, int, MException *) [virtual] const MSelection * Selection to paste into int Type of paste (see "Paste special constants"). MClipStream * Input stream const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") MException * Storage location for errors Reads values from the clipboard into the given selection. void ═══ 2.12.38. Printing ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.38.1. MMesaModel::createPrintInfo() ═══ createPrintInfo(const MRect *ire, const MPrintHead *ph) [virtual] const MRect *ire Page rectangle const MPrintHead *ph Print job header information Retrieves the information needed to do a print job based on the model: the given page rectangle; the headers from the given print header (see MPrintHead); the range from the given print header if one is defined, or the extent of the first layer otherwise (see MMesaModel::getExtents()); the current time; the scaling-and-rotation transformation matrix, based on the print orientation and scaling info from the print header, the size of the page rectangle, and the size of the range being printed; the number of pages in the print job, based on size of area being drawn, size of page area, page breaks, etc.; the order in which to print those pages (over-then-down vs. down-then-over); ...and returns an MPrintInfo instance including that information (see Other Mesa-specific classes). MPrintInfo * ═══ 2.12.38.2. MMesaModel::doPage() ═══ doPage(MDraw *, const MRect *, const MAddress *, const MAddress *, const MPrintHead *, int thisPage, int totPage, double time) [virtual] MDraw * Handle to the drawing space to print onto const MRect * Page rectangle const MAddress * Upper-left cell of range to be printed on this page const MAddress * Lower-right cell of range to be printed on this page const MPrintHead * Header information for the print job int thisPage Which page of the print job is this? int totPage How many pages are there in the print job? double time What is the print time? Prints the given range onto the given drawing space, with all the associated print-job info. void ═══ 2.12.38.3. MMesaModel::getDefaultPrintHead() ═══ getDefaultPrintHead(MPrintHead *) [virtual] MPrintHead * Storage location Stores a pointer to the default print-job header for the current model. void ═══ 2.12.38.4. MMesaModel::print() ═══ print(MDraw *, const MRect *, const MPrintHead *, int, int, MException *) [virtual] MDraw * Handle to drawing space for printing const MRect * Page rectangle const MPrintHead * Print-job header int Start page int End page MException * Storage location for errors Prints the current model to the given drawing space, using the given print-job headers, in a separate thread. void ═══ 2.12.38.5. MMesaModel::print_nonThreaded() ═══ print_nonThreaded(MDraw *, const MRect *, const MPrintHead *, int start, int end, MException *) [virtual] MDraw * Handle to drawing space for printing const MRect * Page rectangle const MPrintHead * Print-job header int Start page int End page MException * Storage location for errors Prints the current model to the given drawing space, using the given print-job headers, in the current thread. void ═══ 2.12.38.6. MMesaModel::setDefaultPrintHead() ═══ setDefaultPrintHead(const MPrintHead *, int, const MSelection *) [virtual] const MPrintHead * New print-job header int Action to perform (see "Action ID constants") const MSelection * Current selection (to be journaled for undo/redo purposes) Sets the default print-job header for the model. void ═══ 2.12.39. Undo and redo lists ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.12.39.1. MMesaModel::getRedoCnt() ═══ getRedoCnt() [virtual] Returns number of operations that are currently journaled and can be redone. int ═══ 2.12.39.2. MMesaModel::getUndoCnt() ═══ getUndoCnt() [virtual] Returns number of operations currently maintained in the model's undo list. int ═══ 2.12.39.3. MMesaModel::getUndoMax() ═══ getUndoMax() [virtual] Re turns maximum number of operations that can be undone. int ═══ 2.12.39.4. MMesaModel::redoLastCommand() ═══ redoLastCommand(const MSelection *, int, MSelection *) [virtual] const MSelection * Current selection (to be journaled for undo/redo purposes) int Action to perform (see "Action ID constants") MSelection * Storage location for new selection (read from the redo list) Finds the last item in the redo list, restores the model to the state before that command was undone (including retrieving the previous selection), and removes that command from the redo list. Returns 1 if an item in the redo list is actually redone, 0 otherwise. int ═══ 2.12.39.5. MMesaModel::setUndoMax() ═══ setUndoMax(int) [virtual] int New maximum undo setting Sets the maximum size of the model's undo and redo lists. void ═══ 2.12.39.6. MMesaModel::undoLastCommand() ═══ undoLastCommand(const MSelection *, int, MSelection *) [virtual] const MSelection * Current selection int Action to perform (see "Action ID constants") MSelection * Storage location for new selection (read from the undo list) Undoes the last command performed in the model and adds it to the redo list. Stores the selection associated with that command. Returns 1 if the command is actually undone, 0 otherwise. int ═══ 2.13. MMesaView ═══ mesaview.h is the source file for this class. This class inherits from MView Handles the "spreadsheet" part of a single file window, including scrollbars and the sheet display. An MMesaView instance does not handle the actual drawing of a layer of data (see MSheetView). It does, however, keep track of what part of the layer is being drawn and of the relative sizes and positions of the layer and the scrollbars. For example, MMesaView::arrangeViews() arranges the scroll bars and the sheet view correctly on the screen, and is generally called whenever the file window is resized. Each MMesaView instance keeps track of the views that compose it (the MSheetView and the two scrollbars) and the model it is displaying. It also keeps track of the current context menu and the "superview" window, just like any other MView subclass (see MView). ═══ 2.13.1. Creating and destroying an MMesaView instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.13.1.1. MMesaView::MMesaView() ═══ MMesaView(HWND, MMesaModel *) HWND Handle to the parent window MMesaModel * Associated model Creates a new MMesaView instance with the values passed in. void MMesaView(MWindow *, MMesaModel *) MWindow * Handle to the parent window MMesaModel * Associated model Creates a new MMesaView instance with the values passed in. void ═══ 2.13.1.2. MMesaView::~MMesaView() ═══ ~MMesaView() [virtual] Destroys the instance and frees all allocated resources. void ═══ 2.13.1.3. MMesaView::aboutToDestroy() ═══ aboutToDestroy() [virtual] Unregisters the Mesa view's interest in its model (see MMesaModel::unregisterInterest()), passes through to the sheet view and scrollbars, and deletes itself. void ═══ 2.13.1.4. MMesaView::cleanUp() ═══ cleanUp() [virtual] Unregisters the Mesa view's interest in its model (see MMesaModel::unregisterInterest()), and passes through to the sheet view and scrollbars. void ═══ 2.13.2. Handling the views within a Mesa view ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.13.2.1. MMesaView::aboutToChangeToLayer() ═══ aboutToChangeToLayer(int) [virtual] int New layer Alerts other items, such as the scroll bars, that a new layer is going to be displayed. This allows those items to resize or reinitialize themselves as needed. void ═══ 2.13.2.2. MMesaView::arrangeViews() ═══ arrangeViews() [virtual] Arranges the sheet view and the scroll bars correctly, based on their current sizes and the size of the display window. void ═══ 2.13.2.3. MMesaView::changedSize() ═══ changedSize(HWND, MChange *) [virtual] HWND Unused MChange * Unused Passes through to MSheetView::changedSize() and to MMesaView::arrangeViews(), and updates the sheet view. Always returns 0. MRESULT ═══ 2.13.2.4. MMesaView::getSheetView() ═══ getSheetView() [virtual] Returns pointer to the sheet view associated with the Mesa view. MSheetView * ═══ 2.13.2.5. MMesaView::setUp() ═══ setUp(const MRect *, int = 0) [virtual] const MRect * Size and position of the new window int Style flags. Defaults to 0. Creates an OS/2 window with the given coordinates. Creates sheet view and scrollbars and arranges them properly within that window, and registers an interest in the associated model (see MInterest). void ═══ 2.13.2.6. MMesaView::updateScrollers() ═══ updateScrollers() [virtual] Updates the scroll bars for the Mesa view based on the sheet view size and position. void ═══ 2.13.3. Handling the associated model ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.13.3.1. MMesaView::doesFrameExist() ═══ doesFrameExist(const char *) [virtual] const char* Frame name Returns 1 if the named frame exists in the frame list for the model associated with the Mesa view; 0 otherwise. int ═══ 2.13.3.2. MMesaView::getDirectory() ═══ getDirectory() [virtual] Returns path name (not file name) of the model associated with the Mesa view. (Compare with MMesaModel::getPathName().) char * ═══ 2.13.3.3. MMesaView::getFrameName() ═══ getFrameName(int num) [virtual] int num Index into model's frame list Returns the name of the given item in the frame list of the model associated with the Mesa view. char * ═══ 2.13.3.4. MMesaView::getModel() ═══ getModel() [virtual] Returns a pointer to the model associated with the Mesa view. MMesaModel * ═══ 2.13.3.5. MMesaView::newShape() ═══ newShape(int, const char *, int, int, int, int, int, int) [virtual] int Frame type (see "Shape and imported graphic type constants") const char * Anchor cell address (in string form) int X- offset from the upper-left of anchor cell for frame position int Y- offset from the upper-left of anchor cell for frame position int New frame width int New frame height int Line width for shape int Line type (arrowheads, etc.) for line shapes Passes through to MSheetView::newShape(), which creates a new shape of the given type at the given position with the given parameters. void ═══ 2.13.4. Handling the application's edit view ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.13.4.1. MMesaView::copyFromEditView() ═══ copyFromEditView(MClipStream *) [virtual] MClipStream * Output stream Passes through to MEditView::copyToClipboard(), copying the current selection within the edit view (if one exists) to the clipboard. void ═══ 2.13.4.2. MMesaView::cutFromEditView() ═══ cutFromEditView(MClipStream *) [virtual] MClipStream * Output stream Passes through to MEditView::copyToClipboard(), copying the current selection within the edit view to the clipboard, and to MEditView::removeSelection(), removing that selection from the edit view, if one exists. void ═══ 2.13.4.3. MMesaView::getEditView() ═══ getEditView() [virtual] Passes through to MGController::getEditView()=0. Returns pointer to the edit view associated with the application, if one exists. MEditView * ═══ 2.13.4.4. MMesaView::isEditing() ═══ isEditing() [virtual] Passes through to MGController::isEditing()=0. Returns 1 if currently editing, 0 otherwise. int ═══ 2.13.4.5. MMesaView::isEditingFormula() ═══ isEditingFormula() [virtual] Passes through to MGController::isEditingFormula()=0. Returns 1 if currently editing a formula, 0 otherwise. int ═══ 2.13.4.6. MMesaView::pasteIntoEditView() ═══ pasteIntoEditView(MClipStream *) [virtual] MClipStream * Input stream Passes through to MEditView::copyToClipboard(), which replaces the current selection in the edit view (if one exists) with the contents of the clipboard. void ═══ 2.13.4.7. MMesaView::removeEdit() ═══ removeEdit() [virtual] Pass-through to MGController::removeEdit()=0, which deletes the edit viewif one exists. void ═══ 2.13.4.8. MMesaView::resizeFormulaView() ═══ resizeFormulaView() [virtual] Passes through to MGController::resizeFormulaView()=0, which resizes the formula view if one exists. void ═══ 2.13.4.9. MMesaView::updateFormulaView() ═══ updateFormulaView() [virtual] Passes through to MGController::updateFormulaView()=0, which updates the formula view if one exists. void ═══ 2.13.5. Handling commands and user input ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.13.5.1. MMesaView::canEditContents() ═══ canEditContents() [virtual] Passes through to MSheetView::canEditContents(). Returns 1 if the contents of the sheet can be edited, 0 otherwise. int ═══ 2.13.5.2. MMesaView::canExecute() ═══ canExecute(int, int &) [virtual] int Command ID int & Unused Determines whether the given command can be executed within the Mesa view at this moment. For example, if there is nothing on the clipboard, then "Paste" won't work. Returns 1 if the command can be executed, 0 otherwise. int ═══ 2.13.5.3. MMesaView::handleKey() ═══ handleKey(int, int) [virtual] int Character entered int Key flags set (Ctrl, Alt, etc.) Passes through to MGController::handleKey()=0. Returns 0 if the key was handled, 1 otherwise. int ═══ 2.13.5.4. MMesaView::winCommand() ═══ winCommand(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Process the command. See mesaview.cpp for the complete list. MRESULT ═══ 2.13.5.5. MMesaView::winChar() ═══ winChar(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Command MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) If there is a sheet view associated with the Mesa view, passes through to the sheet view's winChar method, which handles keyboard processing for the sheet. Returns 1 if the keystroke was handled, 0 otherwise. MRESULT ═══ 2.13.6. Scrolling the sheet ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.13.6.1. MMesaView::scrollFrom() ═══ scrollFrom(int, int) [virtual] int Row int Column Passes through to MSheetView::scrollFrom(), which scrolls the sheet so that the cell at the given row and column appears at the upper left of the cell, then redisplays as needed. void ═══ 2.13.6.2. MMesaView::scrollToVisible() ═══ scrollToVisible(const MAddress *, int=0) [virtual] const MAddress * Address to display int Actually scroll? 1 to scroll, 0 to not scroll. Default is 0. Scroll to make a given address visible. Passes through to MSheetView::scrollToVisible(), determining the necessary offset to make the given cell appear in the sheet view (and scrolling if appropriate). Returns 1 if there is an offset necessary to display the given cell, 0 otherwise. (In other words, returns 0 if the given cell is already being displayed.) int ═══ 2.13.6.3. MMesaView::winHScroll() ═══ winHScroll(HWND, ULONG, MPARAM, MPARAM, int &handled) [virtual] HWND Unused ULONG Unused MPARAM Unused MPARAM Scroll type (see "Scrolling constants") int &handled Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Scrolls the appropriate number of pixels horizontally, calculates the new upper-left cell being displayed in the sheet view, and sets handled to 1. Always returns 1. MRESULT ═══ 2.13.6.4. MMesaView::winSize() ═══ winSize(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Unused ULONG Unused MPARAM Unused MPARAM Unused int & Unused Passes through to MMesaView::arrangeViews(). Always returns 0. MRESULT ═══ 2.13.6.5. MMesaView::winUpdateSheet() ═══ winUpdateSheet(MChange *) [virtual] MChange * MChange list of cells that have been affected. If the currently displayed page is a layer, updates the region of the layer that is currently displayed in the sheet view, including frames and other displayed objects as appropriate. Always returns 0. MRESULT ═══ 2.13.6.6. MMesaView::winVScroll() ═══ winVScroll(HWND, ULONG, MPARAM, MPARAM, int &handled) [virtual] HWND Unused ULONG Unused MPARAM Unused MPARAM Scroll type (see "Scrolling constants") int &handled Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Scrolls the appropriate number of pixels vertically, calculates the new upper-left cell being displayed in the sheet view, and sets handled to 1. Always returns 1. MRESULT ═══ 2.13.7. Handling sheet magnification ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.13.7.1. MMesaView::getViewScale() ═══ getViewScale() [virtual] Passes through to MSheetView::getViewScale(). Returns the magnification of the sheet view (1.00 = 100%). float ═══ 2.13.7.2. MMesaView::setViewScale() ═══ setViewScale(float s) [virtual] float s New scale for sheet Passes through to MSheetView::setViewScale(), which sets the magnification of the sheet view (1.00 = 100%). void ═══ 2.13.8. Retrieving the current selection ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.13.8.1. MMesaView::getCurAdPtr() ═══ getCurAdPtr() [virtual] Passes through to MSheetView::getCurAdPtr(). Returns pointer to the current selection. const MAddress * ═══ 2.13.8.2. MMesaView::getCurLayer() ═══ getCurLayer() [virtual] Passes through to MSheetView::getCurLayer(). Returns current layer number. int ═══ 2.13.8.3. MMesaView::getCurSelection() ═══ getCurSelection() [virtual] Passes through to MSheetView::getCurSelection(). Returns pointer to the current selection. const MSelection * ═══ 2.13.8.4. MMesaView::getLayerName() ═══ getLayerName() [virtual] Passes through to MSheetView::getLayerName(). Returns name of current layer. const char * ═══ 2.13.8.5. MMesaView::getLayerNumber() ═══ getLayerNumber() [virtual] Passes through to MSheetView::getLayerNumber(). Returns number of current layer. int ═══ 2.13.8.6. MMesaView::getSelectionContents() ═══ getSelectionContents() [virtual] Passes through to MSheetView::getSelectionContents(). Returns string form of the current selection (see also MSelection::getSelectionContents() ). char * ═══ 2.13.8.7. MMesaView::getSelectionName() ═══ getSelectionName() [virtual] Passes through to MSheetView::getSelectionName(). Returns name of the current selection (see also MSelection::getSelectionName() ). char * ═══ 2.13.8.8. MMesaView::getSelectionRange() ═══ getSelectionRange() [virtual] Passes through to MSheetView::getSelectionRange(). Returns string form of the current range (see also MSelection::getSelectionRange()] ). char * ═══ 2.13.8.9. MMesaView::isScriptSelected() ═══ isScriptSelected() [virtual] Passes through to MSheetView::isScriptSelected(). Returns 1 if a script is selected, 0 otherwise. int ═══ 2.13.8.10. MMesaView::isSheetSelected() ═══ isSheetSelected() [virtual] Passes through to MSheetView::isSheetSelected(). Returns 1 if a layer is selected, 0 otherwise. int ═══ 2.13.9. Setting the current selection ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.13.9.1. MMesaView::resetView() ═══ resetView(MChange *) [virtual] MChange * Unused Sets the selection to default values (first layer, first row, first column) and updates everything accordingly. Always returns 0. MRESULT ═══ 2.13.9.2. MMesaView::select() ═══ select(const MSelection *) [virtual] const MSelection * New selection Passes through to MSheetView::select(), which sets the current selection to the given value. void ═══ 2.13.9.3. MMesaView::setAddressAndRange() ═══ setAddressAndRange(const MAddress *, const MRange *) [virtual] const MAddress * New address const MRange * New range Passes through to MSheetView::setAddressAndRange(), which sets the currently selected address and range to the given values. void ═══ 2.13.9.4. MMesaView::setCurAd() ═══ setCurAd(const MAddress *) [virtual] const MAddress * New address Passes through to MSheetView::setCurAd(), which sets the current address to the given value. void ═══ 2.13.9.5. MMesaView::setCurRange() ═══ setCurRange(const MRange *) [virtual] const MRange * New range Passes through to MSheetView::setCurRange(), which sets the current range to the given value void ═══ 2.13.9.6. MMesaView::setLayer() ═══ setLayer(int) [virtual] int New layer Passes through to MSheetView::setLayer(), which changes the layer being displayed and warns all the relevant windows. void ═══ 2.13.9.7. MMesaView::setSelection() ═══ setSelection(const MSelection *) [virtual] const MSelection * New selection Passes through to MSheetView::setSelection(), which sets the current selection to the given value. void ═══ 2.14. MObject ═══ object.h is the source file for this class. Base class for all objects with virtual tables in Mesa DOK. MObject allows other classes and instances to query information about themselves. ═══ 2.14.1. Creating and destroying an MObject instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.14.1.1. MObject::MObject() ═══ MObject() Creates a new MObject instance. void MObject(const char *, int) const char * Filename the objects are allocated from; used for debug purposes. int Line number the objects are allocated from; used for debug purposes. Creates a new MObject instance and stores the given values in it. void ═══ 2.14.1.2. MObject::~MObject() ═══ ~MObject() [virtual] Destroys this instance and frees all resources. void ═══ 2.15. MPoint ═══ rect.h is the source file for this class. Represents a single point within the application window - for example, the point where a mouse-down event occurs. MPoint is an abstraction of the OS/2 POINTL class, existing primarily to allow alterations to point-handling routines to be made in a single place in the code. Each MPoint instance keeps track of the X and Y coordinates of the point it represents. The MPoint itself does not contain any information whatsoever about its reference frame; instead, various classes within Mesa DOK establish their own conventions for the origin point and the positive X and Y directions:  View classes such as MSheetView keep their origin point at the upper-left corner of the window.  The Mesa model maintains an origin point at the upper-left corner of cell A1 of the given layer, or the upper-left corner of the given script page.  Frames maintain an origin point at the lower-left corner of the frame. These coordinates are maintained in points, allowing items to be displayed within a view consistently with the way they are produced within a printer. Additionally, your application window, and whatever other OS/2 windows it contains, maintain their origin points in OS/2 GPI coordinates at the lower-left corner of the window, in pixels. Furthermore, functions may transform coordinate frames in a variety of other ways for convenience's sake, as long as they remain consistent with the existing conventions. The routines that detect and handle mouse events, drawing, and so forth automatically convert coordinates from OS/2 window to Mesa view to Mesa model to frame as needed, so you don't generally have to worry about the coordinate frame of a point unless you want to bypass these routines within your own functions. ═══ 2.15.1. Initializing and destroying an MPoint instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.15.1.1. MPoint::free() ═══ free() Releases all resources allocated to the MPoint (note: currently, no resources are ever allocated to an MPoint, and free() does nothing at all). void ═══ 2.15.1.2. MPoint::copyFromPOINTL() ═══ copyFromPOINTL(const void *) const void * Input POINTL Initializes the MPoint with coordinates read from the given POINTL. void ═══ 2.15.1.3. MPoint::init() ═══ init() Initializes the MPoint with default coordinates of 0,0. void init(const MPoint *) const MPoint * MPoint instance to initialize from Initializes the MPoint with coordinates read from the given parameter. void init(float, float) float X coordinate float Y coordinate Initializes the MPoint with the given coordinates. void init(MStream *st) MStream *st Input stream Initializes the MPoint with coordinates read from st (see MStream). void ═══ 2.15.2. Retrieving point position ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.15.2.1. MPoint::getX() ═══ getX() Returns X coordinate. float ═══ 2.15.2.2. MPoint::getY() ═══ getY() Returns Y coordinate. float ═══ 2.15.3. Changing point position ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.15.3.1. MPoint::offsetX() ═══ offsetX(float) float X offset Increments the X coordinate by the given amount. void ═══ 2.15.3.2. MPoint::offsetY() ═══ offsetY(float) float Y offset Increments the Y coordinate by the given amount. void ═══ 2.15.3.3. MPoint::rotate() ═══ rotate(float) float Degrees to rotate Sets the X and Y coordinates to those of a point rotated the given number of degrees around the point 0,0. void ═══ 2.15.3.4. MPoint::scaleDown() ═══ scaleDown(float) float Scale factor Divides the X and Y coordinates by the given scale-down factor. void ═══ 2.15.3.5. MPoint::scaleUp() ═══ scaleUp(float) float Scale factor Multiplies the X and Y coordinates by the given scale-up factor. void ═══ 2.15.3.6. MPoint::set() ═══ set(float, float) float X coordinate float Y coordinate Sets the X and Y coordinates to the given values. void ═══ 2.15.3.7. MPoint::setX() ═══ setX(float) float New X coordinate Sets the X coordinate to the given value. void ═══ 2.15.3.8. MPoint::setY() ═══ setY(float) float New Y coordinate Sets the Y coordinate to the given value. void ═══ 2.15.3.9. MPoint::translate() ═══ translate(float, float) float X offset float Y offset Increments the X and Y coordinates by the given values. void ═══ 2.15.4. Outputting a point ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.15.4.1. MPoint::copyToPOINTL() ═══ copyToPOINTL(void *) const void * Output POINTL Copies X and Y coordinates from the current MPoint to the given POINTL. void ═══ 2.15.4.2. MPoint::write() ═══ write(MStream *st) MStream *st Output stream Writes the X and Y coordinates out to st (see MStream). void ═══ 2.15.5. MPoint operators ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.15.5.1. MPoint::operator==() ═══ operator==(const MPoint &) const const MPoint & Instance to compare to Compares the current X and Y coordinates with those from the given MPoint. Returns 1 if both are equal, 0 otherwise. int ═══ 2.16. MPrintHead ═══ printhead.h is the source file for this class. This class inherits from MObject Each MPrintHead instance keeps track of the following print-job related information:  its name;  the range to printed (default is all the non-empty cells in the current layer);  the scale to print in (default is 100%);  margin size (default is 72 points, or 1 inch);  the order in which to print pages if range doesn't fit on one page(default is over, then down);  page orientation (default is portrait);  up to eight header strings and their associated fonts;  whether grid lines should be printed;  whether row/column headings should be printed. ═══ 2.16.1. Creating, destroying, and initializing an MPrintHead instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.16.1.1. MPrintHead::MPrintHead() ═══ MPrintHead() Creates an MPrintHead instance with default values. void MPrintHead(MStream *st) MStream *st Input stream Creates a new MPrintHead instance and loads the values from st (see MStream). void MPrintHead(const MPrintHead *) const MPrintHead * MPrintHead to initialize from Creates a new MPrintHead instance and sets the values to those in the given MPrintHead. void ═══ 2.16.1.2. MPrintHead::~MPrintHead() ═══ ~MPrintHead() [virtual] Frees any resources allocated by the MPrintHead instance. void ═══ 2.16.2. Retrieving information from an MPrintHead instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.16.2.1. MPrintHead::getFont() ═══ getFont(int) const [virtual] int Which header string? Returns the font for the given header string (see "Header position constants"). const MFont * ═══ 2.16.2.2. MPrintHead::getGrid() ═══ getGrid() const [virtual] Returns 1 if grid lines should be printed; 0 otherwise. int ═══ 2.16.2.3. MPrintHead::getLayer() ═══ getLayer() const [virtual] Returns number of layer to be printed. int ═══ 2.16.2.4. MPrintHead::getMargin() ═══ getMargin(int) const [virtual] int Which margin? Returns size (in points) of the given margin (see "Margin position constants"). int ═══ 2.16.2.5. MPrintHead::getOrient() ═══ getOrient() const [virtual] Returns page orientation (see "Page orientation constants"). int ═══ 2.16.2.6. MPrintHead::getOrder() ═══ getOrder() const [virtual] Returns print order (see "Print order constants"). int ═══ 2.16.2.7. MPrintHead::getRange() ═══ getRange() const [virtual] Returns address of range to be printed. const MRange * ═══ 2.16.2.8. MPrintHead::getRCHead() ═══ getRCHead() const [virtual] Returns 1 if row and column headers should be printed; 0 otherwise. int ═══ 2.16.2.9. MPrintHead::getScale() ═══ getScale() const [virtual] Returns current scaling percentage (default is 1). float ═══ 2.16.2.10. MPrintHead::getString() ═══ getString(int) const [virtual] int Which header string? Returns the text of the given header string (see "Header position constants"). const char * ═══ 2.16.3. Setting values in an MPrintHead instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.16.3.1. MPrintHead::operator=() ═══ operator=(const MPrintHead &ph) [virtual] const MPrintHead & ph Another MPrintHead Copies the values from ph to the current instance. Returns reference to current instance. MPrintHead & ═══ 2.16.3.2. MPrintHead::setGrid() ═══ setGrid(int) [virtual] int TRUE for print grid, FALSE for don't print grid Sets the print-grid setting for the print job. void ═══ 2.16.3.3. MPrintHead::setLayer() ═══ setLayer(int lay) [virtual] int lay Layer to be printed Sets the layer for the print job to the given layer. void ═══ 2.16.3.4. MPrintHead::setMargin() ═══ setMargin(int n, int val) [virtual] int n Which margin? int val New size, in points Sets the given margin (see "Margin position constants") to the given size. void ═══ 2.16.3.5. MPrintHead::setOrder() ═══ setOrder(int) [virtual] int New order Sets the print order to the given value (see "Print order constants"). void ═══ 2.16.3.6. MPrintHead::setOrient() ═══ setOrient(int) [virtual] int New orientation Sets the orientation to the given value (see "Page orientation constants"). void ═══ 2.16.3.7. MPrintHead::setRange() ═══ setRange(const MRange *r) [virtual] const MRange *r New range . Sets the range to be printed to the given range. void ═══ 2.16.3.8. MPrintHead::setRCHead() ═══ setRCHead(int) [virtual] int TRUE to print row and column headers; FALSE otherwise. Sets the print-headers setting for the print job. void ═══ 2.16.3.9. MPrintHead::setScale() ═══ setScale(float) [virtual] float New scale value Sets the print scale to the given value (1=100%). void ═══ 2.16.3.10. MPrintHead::setString() ═══ setString(int, const char *text) [virtual] int Which header? const char *text New text Sets the given header (see "Header position constants") to the given text. void ═══ 2.16.4. Outputting an MPrintHead instance to a stream ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.16.4.1. MPrintHead::write() ═══ write(MStream *st) const [virtual] MStream *st Output stream Outputs all stored values to st (see MStream). void ═══ 2.17. MRange ═══ range.h is the source file for this class. Represents a range of cells within a model. An MRange instance can represent either a simple rectangular range or a discontinuous range, consisting of several, potentially overlapping, rectangular ranges. Note that an MRange instance refers to and does not contain the data in the range it represents. Instances can therefore be created and destroyed without having any direct effect on the cells being represented. Each MRange instance keeps track of a range list, each entry in which contains either a single address (if the given range is only one cell) or a pair of addresses (defining the upper-left and lower-right corners of that range). ═══ 2.17.1. Destroying an MRange instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.17.1.1. MRange::free() ═══ free() Releases any storage the MRange has allocated and deletes the range list. void ═══ 2.17.2. Setting or replacing the range list ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.17.2.1. MRange::copySelectedRanges() ═══ copySelectedRanges(const MRange *, int, int) const MRange * MRange to copy from int First item in range list to copy int Last item in range list to copy Replaces the current range list with the given subset of the given MRange's range list. For example, if range1 contains 4 items and range2 contains 10 items, then range1 -> copySelectedRanges(range2, 3, 5) will leave range1 containing 3 items, equal to the third, fourth, and fifth items from range2. void ═══ 2.17.2.2. MRange::operator=() ═══ operator=(const MRange &) const MRange & Range to copy values from Copies all values from the given rangeto the current range. Returns reference to current range. MRange & ═══ 2.17.2.3. MRange::init() ═══ init() Initializes the MRange with an empty range list. void init(MStream *st) MStream *st Input stream Initializes the instance with a range list read from st (see MStream). void init(const MAddress *) const MAddress * Address Initializes the MRange with a single range containing only the given cell. void init(const MAddress *, const MAddress *) const MAddress * Upper-left corner of range const MAddress * Lower-right corner of range Initializes the MRange with a single range specified by the given addresses. void init(const MRange *) const MRange * Range Initializes the MRange with the range list from the given MRange. void ═══ 2.17.2.4. MRange::set() ═══ set(const MAddress *) const MAddress * Address Sets range list to a single range containing only the given cell. void set(const MAddress *, const MAddress *) const MAddress * Upper-left corner of range const MAddress * Lower-right corner of range Sets range list to a single range specified by the given addresses. void set(const MRange *) const MRange * Range Replaces current range list with that of the given range. void ═══ 2.17.2.5. MRange::setAndSort() ═══ setAndSort(const MAddress *, const MAddress *) const MAddress * One corner of range const MAddress * Other corner of range Sets range list to a single range represented by the given addresses, which are sorted into upper-left, lower-right order before being added. void ═══ 2.17.2.6. MRange::zap() ═══ zap() Re-initializes the MRange instance to default values. void ═══ 2.17.3. Adding items to the range list ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.17.3.1. MRange::addAndSortRange() ═══ addAndSortRange(const MAddress *, const MAddress *) const MAddress * One corner of new range const MAddress * Other corner of new range Adds the given addresses to the range list, sorting into upper-left, lower-right order if needed. void ═══ 2.17.3.2. MRange::addRange() ═══ addRange(const MAddress *) const MAddress * New address Adds the address to the range list as a single-cell range. void addRange(const MAddress *, const MAddress *) const MAddress * Upper-left corner of new range const MAddress * Lower-right corner of new range Adds the given addresses to the range list. void ═══ 2.17.4. Querying the range list ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.17.4.1. MRange::getCount() ═══ getCount() const Returns size of range list. int ═══ 2.17.4.2. MRange::getAbs() ═══ getAbs() Returns 1 if the first item in the range list contains an absolute row, column, or layer reference; 0 otherwise. int ═══ 2.17.4.3. MRange::getItem() ═══ getItem(int, MAddress &, MAddress &) const int Which item? MAddress & Storage for upper left corner MAddress & Storage for lower right corner Stores the addresses of the corners of the given item in the range list. void ═══ 2.17.4.4. MRange::getTotalCells() ═══ getTotalCells() const Returns the total number of cells referred to by all the ranges in the range list. Cells referred to by more than one range are counted multiple times. int ═══ 2.17.4.5. MRange::isAtLowerEdge() ═══ isAtLowerEdge(const MAddress *) const const MAddress * Address to look for Determines whether the given address is within the bottom row of any range in the range list. If so, returns 1; otherwise returns 0. int ═══ 2.17.4.6. MRange::inRange() ═══ inRange(const MAddress *) const const MAddress * Address to look for Determines whether the given address is within any range in the range list. If so, returns 1; otherwise returns 0. int inRange(const MRange *) const const MRange * Range to look for Determines whether all the cells in the given range are within any range in the range list. If so, returns 1; otherwise returns 0. int ═══ 2.17.4.7. MRange::inWhichRange() ═══ inWhichRange(const MAddress *, MAddress &, MAddress &) const const MAddress * Address to look for MAddress & Storage for upper left corner MAddress & Storage for lower right corner Determines whether the given address is within any range in the range list, and stores the upper-left and lower-right addresses of that range. Returns the position of that range in the range list, or -1 if no such range is found. int ═══ 2.17.4.8. MRange::isAutoGrow() ═══ isAutoGrow() const Returns 1 if the range is defined as an auto-grow range; 0 otherwise. int ═══ 2.17.4.9. MRange::isColInRange() ═══ isColInRange(int, int) const int Which column? int Which layer? Determines whether the given column overlaps the current range (see also MRange::overlapRange() ). Returns 1 if it overlaps, 0 otherwise. int ═══ 2.17.4.10. MRange::isRowInRange() ═══ isRowInRange(int, int) const int Which row? int Which layer? Determines whether the given row overlaps the current range (see also MRange::overlapRange() ). Returns 1 if it overlaps, 0 otherwise. int ═══ 2.17.4.11. MRange::overlapRange() ═══ overlapRange(const MRange *) const const MRange * MRange to compare to Two MRanges overlap if any of the cells in any of the ranges included in one MRange is also in one of the ranges included in the other MRange. For example, if mr1 includes the range A5:F6 as the third element in its range list, and mr2 includes the range C1:D10 as the fifth element in its range list, then mr1 -> overlapRange(mr2) will return 1 (since the cells C5, C6, D5 and D6 are common to both). Returns 1 if the two ranges overlap, 0 otherwise. int ═══ 2.17.5. Handling the range list ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.17.5.1. MRange::setAutoGrow() ═══ setAutoGrow(int) int New autogrow setting Sets the autogrow flag for the range. void ═══ 2.17.5.2. MRange::setCount() ═══ setCount(int) int New range list size Sets the size of the range list. Use with some care, as the current range list may be larger than the new size, in which case the extra ranges will be effectively lost. void ═══ 2.17.5.3. MRange::sortRange() ═══ sortRange() Sorts each item in the range list into upper-left, lower-right order. void ═══ 2.17.6. Changing addresses of items in the range list ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.17.6.1. MRange::doMerge() ═══ doMerge(const MAddress *) const MAddress * Base address Passes through to MAddress::doMerge() for every MAddress in the range list, thereby offseting the entire range being represented. For example, if range1 represents the range A1:D5,B2,E5:G11 and base represents the cell A5, then range1 -> doMerge(base) will set range1 to represent the range A5:D9,B6,E9:G15. void ═══ 2.17.6.2. MRange::growFrom() ═══ growFrom(const MAddress *) const MAddress * Address to look for Determines whether the given address is within the bottom row of any range in the range list. If not, or if it's a null address, returns -1. Otherwise, adds one row to the first range for which that is true and returns the position of that range in the range list. int ═══ 2.17.6.3. MRange::makeAbs() ═══ makeAbs() Passes through to MAddress::makeAbs() for every address in the range list, thereby changing them all to completely absolute range references. void ═══ 2.17.6.4. MRange::offset() ═══ offset(int, int, int) int Row offset int Column offset int Layer offset Passes through to MAddress::offset() for every address in the range list, thereby offsetting the entire range by the given coordinates. void ═══ 2.17.6.5. MRange::offsetBy() ═══ offsetBy(const MAddress *) const MAddress * Address containing coordinates to offset by Passes through to MAddress::offset() for every address in the range list, where the three integer parameters are retrieved from the given address, thereby offsetting the entire range by the given coordinates. void ═══ 2.17.6.6. MRange::setAbs() ═══ setAbs(int) int Packed structure containing absolute-flag settings for addresses Unpacks the given structure and passes the appropriate parameters through to MAddress::setAbsLayer(), MAddress::setAbsRow(), and MAddress::setAbsCol() for each address stored in the range list. void ═══ 2.17.6.7. MRange::setItem() ═══ setItem(int, const MAddress *, const MAddress *) int Which item in the range list? const MAddress * Upper-left corner of range const MAddress * Lower-right corner of range Replaces the given item in the range list with a single range specified by the given addresses. void ═══ 2.17.7. Writing out an MRange instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.17.7.1. MRange::write() ═══ write(MStream *st) const MStream *st Output stream Outputs the instance to st (see MStream). void ═══ 2.17.8. MRange operator ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.17.8.1. MRange::operator==() ═══ operator==(const MRange &) const const MRange & Range to compare Two MRanges are equal if their range lists are the same size and contain the same items in the same order. Returns 1 if MRanges are equal, 0 otherwise. int ═══ 2.18. MRect ═══ rect.h is the source file for this class. Represents a rectangular region within the application window - for example, the size of a selected rectangular range. MRect is an abstraction of the OS/2 RECTL structure and is generally used within Mesa DOK where a RECTL would usually occur. It exists primarily to allow alterations to rectangle-handling routines to be made in a single place in the code. Each MRect instance keeps track of its starting point, its width, and its height. For more information, see "MPoint". ═══ 2.18.1. Destroying an MRect instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.18.1.1. MRect::free() ═══ free() Releases all allocated storage for the MRect instance. Currently does nothing, since no storage is allocated. void ═══ 2.18.1.2. MRect::setNull() ═══ setNull() Sets all the values in the MRect instance to null pointers. void ═══ 2.18.2. Setting rectangle size and position ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.18.2.1. MRect::clipRect() ═══ clipRect(const MRect *) const MRect * Clipping rectangle If the corner opposite the starting point of the given rectangle is inside the boundary of the current rectangle, sets the corner opposite the starting point of the current rectangle equal to it. int ═══ 2.18.2.2. MRect::copyFromRECTLInc() ═══ copyFromRECTLInc(const void *) const void * Input RECTL Sets the rectangle parameters to values read from the given RECTL, plus a 1-pixel bounding line. void ═══ 2.18.2.3. MRect::copyFromRECTLNorm() ═══ copyFromRECTLNorm(const void *) const void * Input RECTL Sets the rectangle parameters to values read from the given RECTL. void ═══ 2.18.2.4. MRect::init() ═══ init() Sets the rectangle parameters to {0,0,0,0}. void init(const MRect *) const MRect * Rectangle to initialize from Sets the rectangle parameters to values read from the given MRect. void init(float tx, float ty, float twid, float thi) float tx New X float ty New Y float twid New width float thi New height Sets the rectangle parameters to the given values. void init(MStream *st) MStream *st Input stream Sets the rectangle parameters to values read from st (see MStream). void ═══ 2.18.2.5. MRect::inset() ═══ inset(float,float) float Horizontal inset float Vertical inset Resizes and offsets the rectangle by the given values in all directions. For example, if the current rectangle has width 10 and height 20 and starts at the point {0,0}, inset(2,3) will resize it to width 6 and height 14 and move its starting point to {2,3}. Returns pointer to current rectangle. MRect * ═══ 2.18.2.6. MRect::insetRect() ═══ insetRect(float, float) float Horizontal inset float Vertical inset Resizes and offsets the rectangle by the given values in all directions (identical to inset(float, float)). Returns pointer to current rectangle. MRect * ═══ 2.18.2.7. MRect::intersectRect() ═══ intersectRect(const MRect *) const MRect * Rectangle to compare to Determines whether there is any intersection between the current and the given rectangles. If there is, resizes and offsets the rectangle to the size and position of the area of intersection. (Compare with MRect::doesIntersect().) For example, if the current rectangle has width 10 and height 20 and starts at the point {0,0}, and theRect has width 10 and height 4 and starts at the point {2,3}, intersectRect(theRect) will resize the current rectangle to width 8 and height 4 and move its starting point to {2,3} Returns 1 if they intersect, 0 otherwise. int ═══ 2.18.2.8. MRect::offsetHi() ═══ offsetHi(float) float Height offset Changes the current rectangle's height by the given amount, leaving the starting point unchanged. void ═══ 2.18.2.9. MRect::offsetWid() ═══ offsetWid(float) float Width offset Changes the current rectangle's width by the given amount, leaving the starting point unchanged. void ═══ 2.18.2.10. MRect::offsetX() ═══ offsetX(float) float X offset Moves the starting point of the current rectangle horizontally by the given amount, leaving height and width unchanged. void ═══ 2.18.2.11. MRect::offsetY() ═══ offsetY(float) float Y offset Moves the starting point of the current rectangle vertically by the given amount, leaving height and width unchanged. void ═══ 2.18.2.12. MRect::round() ═══ round() Rounds the height, width, and starting X and Y coordinates of the current rectangle to the nearest integers. Used to avoid problems when drawing lines that are not aligned with pixel boundaries. void ═══ 2.18.2.13. MRect::scaleDown() ═══ scaleDown(float) float Scale factor Divides the height, width, and starting X and Y coordinates of the current rectangle by the given value. void ═══ 2.18.2.14. MRect::scaleUp() ═══ scaleUp(float) float Scale factor Multiples the height, width, and starting X and Y coordinates of the current rectangle by the given value. void ═══ 2.18.2.15. MRect::set() ═══ set(float, float, float, float) float New X float New Y float New width float New height Sets the rectangle parameters to the given values. void ═══ 2.18.2.16. MRect::setCX() ═══ setCX(float) float New maximum X Changes the current rectangle's width to the difference between the X coordinate of the starting point and the given X value, leaving the starting point unchanged. void ═══ 2.18.2.17. MRect::setCY() ═══ setCY(float) float New maximum Y Changes the current rectangle's height to the difference between theY coordinate of the starting point and the givenY value, leaving the starting point unchanged. void ═══ 2.18.2.18. MRect::setHi() ═══ setHi(float) float New height Sets the rectangle's height to the given value, leaving the starting point unchanged. void ═══ 2.18.2.19. MRect::setWid() ═══ setWid(float) float New width Sets the rectangle's width to the given value, leaving the starting point unchanged. void ═══ 2.18.2.20. MRect::setX() ═══ setX(float) float New X coordinate Moves the starting point of the current rectangle horizontally to the given X coordinate. void ═══ 2.18.2.21. MRect::setY() ═══ setY(float) float New Y coordinate Moves the starting point of the current rectangle vertically to the givenY coordinate. void ═══ 2.18.2.22. MRect::sizeByCorner() ═══ sizeByCorner(int, float, float) int Which corner? float X offset float Y offset Resizes/moves the current rectangle by offsetting the given corner (see "Frame corner constants") vertically and/or horizontally by the given amounts. void ═══ 2.18.3. Retrieving rectangle size and position ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.18.3.1. MRect::getCX() ═══ getCX() const Returns the X coordinate of the corner of the current rectangle opposite the starting point. float ═══ 2.18.3.2. MRect::getCY() ═══ getCY() const Returns theY coordinate of the corner of the current rectangle opposite the starting point. float ═══ 2.18.3.3. MRect::getHi() ═══ getHi() const Returns the rectangle height. float ═══ 2.18.3.4. MRect::getWid() ═══ getWid() const Returns the rectangle width. float ═══ 2.18.3.5. MRect::getX() ═══ getX() const Returns the X coordinate of the rectangle's starting point. float ═══ 2.18.3.6. MRect::getY() ═══ getY() const Returns the Y coordinate of the rectangle's starting point. float ═══ 2.18.3.7. MRect::isNull() ═══ isNull() const Returns 1 if the rectangle is null, 0 otherwise. int ═══ 2.18.4. Outputting an MRect instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.18.4.1. MRect::copyToRECTLInc() ═══ copyToRECTLInc(void *) const const void * Output RECTL Sets the given RECTL identical to the current rectangle, including a 1-pixel bounding line. void ═══ 2.18.4.2. MRect::copyToRECTLNorm() ═══ copyToRECTLNorm(void *) const const void * Output RECTL Sets the given RECTL identical to the current rectangle, not including a 1-pixel bounding line. void ═══ 2.18.4.3. MRect::write() ═══ write(MStream *st) const MStream *st Output stream Outputs all stored values to st (see MStream). void ═══ 2.18.5. Determining intersections with a rectangle ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.18.5.1. MRect::doesIntersect() ═══ doesIntersect(const MRect *) const const MRect * Rectangle to compare to Determines whether there is any intersection between the current and the given rectangles. (Compare with MRect::intersectRect().) Returns 1 if they intersect, 0 otherwise. int ═══ 2.18.5.2. MRect::pointIn() ═══ pointIn(const MPoint *) const const MPoint * Point Returns 1 if the given point is within the boundaries of the current rectangle; 0 otherwise. int pointIn(const void *) const const void * Pointer to a POINTL structure Returns 1 if the given point is within the boundaries of the current rectangle; 0 otherwise. int ═══ 2.18.6. MRect operator ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.18.6.1. MRect::operator==() ═══ operator==(const MRect &) const const MRect & Rectangle Returns 1 if the height, width, and starting point of the given rectangle and of the current rectangle are identical; 0 otherwise. int ═══ 2.19. MSelection ═══ selection.h is the source file for this class. An MSelection represents a set of model contents, such as ranges and graphs, and also maintains other information about the view and model that it is associated with. Each MSheetView instance maintains an MSelection which represents the current selection within the view - that is, the set of objects which a user's actions are expected to affect (see MSheetView). However, MSelection is used throughout Mesa DOK, particularly within MMesaModel, to represent a generic set of objects. For example, when an action is added to the undo list, the current selection is journaled; whenever an action is undone or redone, the journaled selection becomes the current selection. Within a given selection there is an "active selection" - for example, there is a base cell which is highlighted by an extra rectangle when the selected range is displayed. In general, when an action is performed on an MSelection, it affects the entire active selection and not anything else. For example, if the active selection is a frame, the MSelection will still maintain a range reference and a base cell reference. However, a command to reformat the current selection will reformat only the frame, not the range or base cell. Each MSelection instance keeps track of:  which page is being displayed in the model, and what type of page (layer or script); (The method names in this class may be somewhat confusing - for historical reasons, "sheet" is used to refer to a layer page, "script" to a script page, and "layer" to a page in general. Elsewhere within Mesa DOK, and consistently within this document, "layer" refers to a layer page, "page" refers to a page in general, and "sheet" is not generally used.)  the selected range on that page, if it's a layer, or the script name, if it's a script;  the active selection, which can include frames;  the upper-left corner to display in the sheet view (see MSheetView);  the default selections on other pages in the model, used to set the correct selection when a new page is displayed (see MSelection::prime()). Much of this information is maintained in string or index form, rather than as actual pointers to the selected objects. For example, MSelection::canEditContents() must query any selected frames to determine their type. However, since only the names of selected frames are stored within the MSelection instance, the method must first query the given model for a pointer to the named frame. This is necessary, since MSelections are stored in the model's undo list and therefore the objects referred to by the MSelection may not always exist. ═══ 2.19.1. Initializing and destroying an MSelection instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.19.1.1. MSelection::free() ═══ free() Releases any storage allocated by this instance. void ═══ 2.19.1.2. MSelection::init() ═══ init() Initializes the instance to default values. void init(MStream *st) MStream *st Input stream Initializes the instance with values read from st (see MStream). void init(const MSelection *, int) const MSelection * MSelection instance to initialize from int Which selections? (1 for all, 0 for just the active selection) Initializes the instance with the indicated values from the given MSelection. void ═══ 2.19.1.3. MSelection::initToA1() ═══ initToA1() Initializes the instance to cell [A]A1. void ═══ 2.19.2. Handling ranges and base cell in an MSelection instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.19.2.1. MSelection::fillRange() ═══ fillRange(MRange *) const MRange * Storage location Stores the current range, if the current page is a layer. void ═══ 2.19.2.2. MSelection::getAdPtr() ═══ getAdPtr() const Returns pointer to base cell. const MAddress * ═══ 2.19.2.3. MSelection::getItem() ═══ getItem(int, MAddress &, MAddress &) const int Which item? MAddress & Upper left corner address MAddress & Lower right corner address Passes through to MRange::getItem() for the selected range, storing the corners of the indicated subrange. void ═══ 2.19.2.4. MSelection::getRangeCount() ═══ getRangeCount() const Passes through to MRange::getCount() for the selected range, returning the number of discrete subranges. int ═══ 2.19.2.5. MSelection::getRangePtr() ═══ getRangePtr() const Returns pointer to the currently selected range. const MRange * ═══ 2.19.2.6. MSelection::getUnconstRangePtr() ═══ getUnconstRangePtr() Returns a pointer to the selected range. MRange * ═══ 2.19.2.7. MSelection::inRange() ═══ const MAddress * Address Passes through to MRange::inRange() for the selected range, returning 1 if the given address is within the current range; 0 otherwise. int ═══ 2.19.2.8. MSelection::inWhichRange() ═══ inWhichRange(const MAddress *, MAddress &, MAddress &) const const MAddress * Address to check for MAddress & Storage location for upper-left corner MAddress & Storage location for upper-right corner Passes through to MRange::inWhichRange() for the selected range, returning 1 if the given address is within the current range; 0 otherwise. int ═══ 2.19.2.9. MSelection::isASpreadsheet() ═══ isASpreadsheet() const Returns 1 if the active selection is a range of cells, 0 otherwise. int ═══ 2.19.2.10. MSelection::isColInRange() ═══ isColInRange(int i1, int i2) const int Which column? int Which layer? Returns 1 if the given column in the given layer is within the selected range. int ═══ 2.19.2.11. MSelection::isRowInRange() ═══ isRowInRange(int, int) const int Which row? int Which layer? Returns 1 if the given row in the given layer is within the selected range. int ═══ 2.19.2.12. MSelection::makeARange() ═══ makeARange() Removes everything in the selection besides the range, and frees the allocated resources. void ═══ 2.19.2.13. MSelection::set() ═══ set(const MAddress *) const MAddress * Address to store as base cell Sets the base cell address to the given address, and clears all ranges from the selection list. void ═══ 2.19.2.14. MSelection::setAdButNotRange() ═══ setAdButNotRange(const MAddress *) const MAddress * Address to store as base cell Sets the base cell address to the given address, leaving the rest of the selection list unchanged. void ═══ 2.19.2.15. MSelection::setAddressAndRange() ═══ setAddressAndRange(const MAddress *, const MRange *) const MAddress * Address to store as base cell const MRange * Range to store as selected range Sets the base cell address to the given address, and sets the current range to the given range. void ═══ 2.19.2.16. MSelection::setAndSort() ═══ setAndSort(const MAddress *, const MAddress *) const MAddress * One corner of new range const MAddress * Other corner of new range Ensures that the active selection is a range (by selecting a default range if it's not), then passes the given addresses through to MRange::setAndSort() for that range, which sets it to the range defined by the given addresses. void ═══ 2.19.2.17. MSelection::setAndSortItem() ═══ setAndSortItem( int item, const MAddress *, const MAddress * ) int item Which item in the range list? const MAddress * One corner of new range const MAddress * Other corner of new range Passes through to MRange::setItem() for the active range, setting the given item in its range list to the new range, then sorts all the items in the active range list into upper-left, lower-right order. void ═══ 2.19.2.18. MSelection::zap() ═══ zap() Reinitializes the selection to cell [A]A1. void ═══ 2.19.2.19. MSelection::zapRange() ═══ zapRange() Sets the range and base cell to cell [A]A1, leaving the rest of the selection unchanged. void ═══ 2.19.2.20. MSelection::zapToLayer() ═══ zapToLayer() Sets the range and base cell to cell A1 of the current layer. void ═══ 2.19.3. Handling frames in an MSelection instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.19.3.1. MSelection::getFrameName() ═══ getFrameName(int) const int Which frame? Returns the frame name for the given frame. const char * ═══ 2.19.3.2. MSelection::isFrameSelected() ═══ isFrameSelected() const Returns frame number of the active selected frame, or 0 if no frame is selected. int isFrameSelected(const char *) const const char * Frame name Returns 1 if the named frame is in the selection, 0 otherwise. int ═══ 2.19.3.3. MSelection::makeNoGraph() ═══ makeNoGraph() Removes all selected frames from the selection, and frees the allocated resources. void ═══ 2.19.3.4. MSelection::setFrameSelection() ═══ setFrameSelection(const char *) const char * Name of frame Sets the active selection to the given frame name. void ═══ 2.19.4. Handling multiple pages in an MSelection instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.19.4.1. MSelection::findSelection() ═══ findSelection(int) const int Which layer? Returns the default selection stored for that layer, or NULL if layer doesn't exist. const MSelection * ═══ 2.19.4.2. MSelection::getLayer() ═══ getLayer() const Returns the current layer number. int ═══ 2.19.4.3. MSelection::getLayerName() ═══ getLayerName(MMesaModel *) MMesaModel * Model containing page name list Returns script name if the current page is a script; otherwise, returns a blank string. const char * ═══ 2.19.4.4. MSelection::isScriptLayer() ═══ isScriptLayer() const Returns 1 if the current selection is a script page; 0 otherwise. int ═══ 2.19.4.5. MSelection::isSheetLayer() ═══ isSheetLayer() const Returns 1 if the current selection is a layer page; 0 otherwise. int ═══ 2.19.4.6. MSelection::makeScript() ═══ makeScript() Removes everything, including the range, from the selection, and makes it a script-page selection. void ═══ 2.19.4.7. MSelection::prime() ═══ prime(int, const MAddress *) int Which layer? const MAddress * Address to store as base cell Stores the given base cell in the instance's selection list for the current layer, then selects the given layer and turns the stored selection for that layer into the active selection. void prime(int, const MAddress *, const MRange *) int Which layer? const MAddress * Address to store as base cell const MRange * Range to store as selected range Stores the given base cell and range in the instance's selection list for the current layer, then selects the given layer and turns the stored selection for that layer into the active selection. void prime(int, const MSelection *) int Which layer? const MSelection * Selection to store as current selection Stores the given selection in the instance's selection list for the current layer, then selects the given layer and turns the stored selection for that layer into the active selection. void ═══ 2.19.4.8. MSelection::setLayer() ═══ setLayer(int, MMesaModel *) int Which page? MMesaModel * Mesa model containing page name list Sets the displayed page within the MSelection to the given page. If the given page is a layer, either restores the stored selection for that page or sets a default selection if no stored selection is available. If the given page is a script, retrieves the script name from the model. void ═══ 2.19.4.9. MSelection::testForSheetLayer() ═══ testForSheetLayer(int) int Which page? Returns 1 if the given page is a layer, 0 otherwise. static int ═══ 2.19.4.10. MSelection::testForScriptLayer() ═══ testForScriptLayer(int i) int Which page? Returns 1 if the given page is a script, 0 otherwise. static int ═══ 2.19.5. Handling upper-left display cell in an MSelection instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.19.5.1. MSelection::getUpperLeftColumn() ═══ getUpperLeftColumn() const Returns column of the first cell being displayed. int ═══ 2.19.5.2. MSelection::getUpperLeftLayer() ═══ getUpperLeftLayer() const Returns layer of the first cell being displayed. int ═══ 2.19.5.3. MSelection::getUpperLeftPtr() ═══ getUpperLeftPtr() const Returns address of the first cell being displayed. const MAddress * ═══ 2.19.5.4. MSelection::getUpperLeftRow() ═══ getUpperLeftRow() const Returns row of the first cell being displayed. int ═══ 2.19.5.5. MSelection::setUpperLeft() ═══ setUpperLeft(const MAddress *) const MAddress * New upper-left corner to display Sets the upper left corner of the display to the given address. void ═══ 2.19.5.6. MSelection::setUpperLeftColumn() ═══ setUpperLeftColumn(int) int New left column Sets the left column to display to the given value. void ═══ 2.19.5.7. MSelection::setUpperLeftRow() ═══ setUpperLeftRow(int) int New top row Sets the top row to display to the given value. void ═══ 2.19.6. Querying the MSelection instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.19.6.1. MSelection::canEditContents() ═══ canEditContents(MMesaModel *) const MMesaModel * Model containing frame list Determines whether the current selection can be textually edited. (The given model is used to retrieve the frame type, if a frame is selected.) If it is a range of cells or a text box, returns 1; otherwise returns 0. int ═══ 2.19.6.2. MSelection::deltaOnlyRange() ═══ deltaOnlyRange(const MSelection *) const const MSelection * MSelection to compare to Is the only difference between the current and the given selections the range? Returns 1 if so; 0 otherwise. int ═══ 2.19.6.3. MSelection::getSelectionContents() ═══ getSelectionContents(MMesaModel *) const MMesaModel * Model containing the frame list If the current active selection is a range, returns the contents of the base cell in string form. If the current active selection is a text box, returns its text. Otherwise, returns an empty string. char * ═══ 2.19.6.4. MSelection::getSelectionName() ═══ getSelectionName(MMesaModel *) const MMesaModel * Model containing page name and frame list If the current page is a script, returns the script name. If one or more frames are selected, returns the name of the first frame. Otherwise, returns the address of the base cell, in string form. char * ═══ 2.19.6.5. MSelection::getSelectionRange()] ═══ getSelectionRange(MMesaModel *, int &)] MMesaModel * Model containing page name and frame list int & Storage location If the current page is a script, returns the script name. If one or more frames are selected, returns the name of the first frame. Otherwise, returns the address of the selected range in string form and stores the length of the string. char * ═══ 2.19.6.6. MSelection::hasSelection() ═══ hasSelection() const Returns 1 if the selection has any contents, 0 otherwise. int ═══ 2.19.6.7. MSelection::isZapped() ═══ isZapped() const Returns 1 if the current selection is empty; 0 otherwise. int ═══ 2.19.7. Writing an MSelection out ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.19.7.1. MSelection::write() ═══ write(MStream *st) const MStream *st Output stream Writes all stored values out to st (see MStream). void ═══ 2.19.8. MSelection operators ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.19.8.1. MSelection::operator=() ═══ operator=(const MSelection &) const MSelection & MSelection instance to initialize from Initialize the instance with values from the given MSelection. Returns pointer to current MSelection. MSelection & operator=(const MSelection *) const MSelection * MSelection instance to initialize from Initialize the instance with values from the given MSelection. Returns pointer to current MSelection. MSelection & ═══ 2.20. MSheetView ═══ sheetview.h is the source file for this class. This class inherits from MView Represents a view into a layer of data, including row and column headers. An MSheetView instance can be created as part of an MMesaView instance (see MMesaView) or can be controlled directly by your application window. In either case, it will both draw a given model on the screen, and handle mouse input to the model. Each MSheetView instance keeps track of:  the Mesa view that contains it (see MMesaView), if any;  the model it displays (see MMesaModel);  the magnification level it should display at;  the current selection within the view (see MSelection);  mouse-input information (what mouse buttons have been pressed, where?);  context-sensitive menus available for the sheet;  whether something is currently being selected. It also maintains a cache buffer to speed redisplay, and keeps track of the current context menu and the "superview" window just like any other MView subclass (see MView). ═══ 2.20.1. Creating and destroying an MSheetView instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.20.1.1. MSheetView::MSheetView() ═══ MSheetView(HWND, MMesaModel *, MMesaView *) HWND Parent of the sheet MMesaModel * Model being viewed MMesaView * Application view instance Passes the parent up the chain to MView, to create the window, and associates the parameters to their respective instance variables. void MSheetView(MWindow *, MMesaModel *, MMesaView *) MWindow * Parent of the sheet MMesaModel * Model being viewed MMesaView * Application view instance. Passes the parent up the chain to MView, to create the window, and associates the parameters to their respective instance variables. void ═══ 2.20.1.2. MSheetView::~MSheetView() ═══ ~MSheetView() [virtual] Frees any resources allocated, and destroys any menus that are in the instance. void ═══ 2.20.1.3. MSheetView::setUp() ═══ setUp(const MRect *, int = 0) [virtual] const MRect * Size int Window style; default is 0. Loads the popup menus and passes parameters to MView::setUp(), which creates a new view window of the given size and style. void ═══ 2.20.2. Querying the current selection ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.20.2.1. MSheetView::canEditContents() ═══ canEditContents() [virtual] Passes through to MSelection::canEditContents() for the current selection, returning 1 if the current selection is editable, 0 otherwise. int ═══ 2.20.2.2. MSheetView::changedSize() ═══ changedSize(HWND, MChange *) [virtual] HWND Unused MChange * Unused If the current selection's base cell or upper-left displayed cell are beyond the maximum row or column being displayed in that layer, sets the currently selected range and base cell to A1 of that layer. Always returns 0. MRESULT ═══ 2.20.2.3. MSheetView::getCurAdPtr() ═══ getCurAdPtr() [virtual] Passes through to MSelection::getAdPtr() for the current selection, returning the current base cell. const MAddress * ═══ 2.20.2.4. MSheetView::getCurLayer() ═══ getCurLayer() [virtual] Passes through to MSelection::getLayer() for the current selection, returning the layer number currently visible. int ═══ 2.20.2.5. MSheetView::getCurRngPtr() ═══ getCurRngPtr() [virtual] Passes through to MSelection::getRangePtr() for the current selection, returning the current range in the current layer's selection. const MRange * ═══ 2.20.2.6. MSheetView::getCurSelection() ═══ getCurSelection() [virtual] Returns the current selection. const MSelection * ═══ 2.20.2.7. MSheetView::getLayerName() ═══ getLayerName() [virtual] Passes through to MSelection::getLayerName() for the current selection, returning the current layer's name. const char * ═══ 2.20.2.8. MSheetView::getLayerNumber() ═══ getLayerNumber() [virtual] Passes through to MSelection::getLayer() for the current selection, returning the current layer's number. int ═══ 2.20.2.9. MSheetView::getSelectionContents() ═══ getSelectionContents() [virtual] Passes through to MSelection::getSelectionContents(), returning the string form of the current selection's contents. char * ═══ 2.20.2.10. MSheetView::getSelectionName() ═══ getSelectionName() [virtual] Passes through to MSelection::getSelectionName(), returning the string form of the current selection's name. char * ═══ 2.20.2.11. MSheetView::getSelectionRange() ═══ getSelectionRange() [virtual] Passes through to MSelection::getSelectionRange()], returning the string form of the current selection's range. char * ═══ 2.20.2.12. MSheetView::isScriptSelected() ═══ isScriptSelected() [virtual] Passes through to MSelection::isScriptLayer() for the current selection, returning 1 if the current selection is a script layer, 0 otherwise. int ═══ 2.20.2.13. MSheetView::isSheetSelected() ═══ isSheetSelected() [virtual] Passes through to MSelection::isSheetLayer() for the current selection, returning 1 if the current selection is a range of data, 0 otherwise. int ═══ 2.20.3. Changing the current selection ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.20.3.1. MSheetView::deselectFrames() ═══ deselectFrames() [virtual] Removes all frames from the current selection and redisplays the previously selected frame. void ═══ 2.20.3.2. MSheetView::extendSelection() ═══ extendSelection(MAddress *tmp) [virtual] MAddress *tmp Corner to extend selection to Extends the current selection to include the given address. void ═══ 2.20.3.3. MSheetView::select() ═══ select(const MSelection *) [virtual] const MSelection * New selection Sets the current selection to the given value. void select(const char *) [virtual] const char * Frame name Passes through to MSelection::setFrameSelection() for the current selection, setting the current selection tot he named frame. void ═══ 2.20.3.4. MSheetView::setAddressAndRange() ═══ setAddressAndRange(const MAddress *, const MRange *) [virtual] const MAddress * New address const MRange * New range Sets the currently selected address and range to the given values. void ═══ 2.20.3.5. MSheetView::setCurAd() ═══ setCurAd(const MAddress *) [virtual] const MAddress * Address to make current Sets the currently selected address. If editing a formula, stores the address (in string format) in the edit view and updates the edit view. void ═══ 2.20.3.6. MSheetView::setCurRange() ═══ setCurRange(const MRange *) [virtual] const MRange * Range to make current Sets the currently selected range, and updates other windows as needed. void ═══ 2.20.3.7. MSheetView::setLayer() ═══ setLayer(int) [virtual] int New layer Sets the layer being displayed and updates other windows and views as needed. void ═══ 2.20.3.8. MSheetView::setSelection() ═══ setSelection(const MSelection *) [virtual] const MSelection * MSelection instance to make current Notifies all parent windows that a layer change is about to occur if necessary, then sets the current selection to the given selection. void ═══ 2.20.3.9. MSheetView::setToNullSelectedRange() ═══ setToNullSelectedRange() [virtual] Clears the current selected range while keeping the current base cell unchanged. void ═══ 2.20.4. Handling input to the view ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.20.4.1. MSheetView::bkgColorDroppedAt() ═══ bkgColorDroppedAt(MColor, int, int) [virtual] MColor Color dropped on sheet int X coordinate of location dropped int Y coordinate of location dropped Determines what sort of item the color was dropped on (a frame, a range, etc.) and routes the event accordingly, setting the item's background color to the given color. void ═══ 2.20.4.2. MSheetView::colorDroppedAt() ═══ colorDroppedAt(MColor, int, int) [virtual] MColor Color dropped on sheet int X coordinate of location dropped int Y coordinate of location dropped Determines what sort of item the color was dropped on (a frame, a range, etc.) and routes the event accordingly, setting the item's foreground color to the given color. void ═══ 2.20.4.3. MSheetView::dragDrop() ═══ dragDrop(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Unused ULONG Unused MPARAM Items being dropped - bitmaps or metafiles MPARAM Unused int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Determines what to do for each item dropped onto the sheet view, and sets the processing flag to 1. Always returns 0. MRESULT ═══ 2.20.4.4. MSheetView::dragOver() ═══ dragOver(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Unused ULONG Unused MPARAM Items being dropped - bitmaps or metafiles MPARAM X,Y coordinates of current location int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Determines whether the items being dragged over the sheet can be dropped onto the sheet at the given point, passes the appropriate message to OS/2, and sets the handled/processed flag to 1. MRESULT ═══ 2.20.4.5. MSheetView::fontDroppedAt() ═══ fontDroppedAt(const MFont *, int, int) [virtual] const MFont * Font dropped int X coordinate where it was dropped int Y coordinate where it was dropped Determines what part of the view the font was dropped on, and either passes through to the appropriate subsection (e.g; if the font was dropped on a frame), or changes the font directly if dropped on a cell or the selected range. void ═══ 2.20.4.6. MSheetView::handleChar() ═══ handleChar(int, int, int &) [virtual] int Character entered int Flags set int & Was the character processed? 1 for yes, 0 for no. Handles the keystrokes for arrow keys, navigation, and so forth. MRESULT ═══ 2.20.4.7. MSheetView::handleMouse2Motion() ═══ handleMouse2Motion(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Unused ULONG Unused MPARAM X and Y coordinates of mouse-pointer location MPARAM Unused int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Handles the mouse action as appopriate, based on the current application state (i.e. are we editing a formula? copying a range? etc.) and the location of the mouse action (e.g; a range or a frame). Sets the handled flag to 1 if the action is handled. MRESULT ═══ 2.20.4.8. MSheetView::mouse1Click() ═══ mouse1Click(const MPoint *, int, int &) [virtual] const MPoint * Unused int Unused int & Unused Does nothing. void ═══ 2.20.4.9. MSheetView::mouse1Down() ═══ mouse1Down(const MPoint *, int, int &) [virtual] const MPoint * Point the mouse went down at int Key flags int & Unused Stores the position and flags, and passes through to MSheetView::mouse1MotionStart(). void ═══ 2.20.4.10. MSheetView::mouse1MotionEnd() ═══ mouse1MotionEnd(int &) [virtual] int & Was it handled? 1 for yes, 0 for no. If the mouse is currently being used to select an object or resize a row or column, handles the operation and sets the handled flag to 1. Otherwise does nothing. void ═══ 2.20.4.11. MSheetView::mouse1MotionStart() ═══ mouse1MotionStart(int &) [virtual] int & Was it handled? 1 for yes, 0 for no. Based on the mouse position and the view's state, determines what action is being initiated. Sets internal values accordingly. void ═══ 2.20.4.12. MSheetView::mouse1Up() ═══ mouse1Up(const MPoint *, int, int &) [virtual] const MPoint * Unused int Unused int & Was it handled? 1 for yes, 0 for no. If a selection process was occuring, passes through to MSheetView::mouse1MotionEnd(). void ═══ 2.20.4.13. MSheetView::mouse2Down() ═══ mouse2Down(const MPoint *, int, int &) [virtual] const MPoint * Point the mouse went down at int Key flags int & Unused Stores the position and flags, and passes through to MSheetView::mouse2MotionStart(). void ═══ 2.20.4.14. MSheetView::mouse2MotionEnd() ═══ mouse2MotionEnd(int &) [virtual] int & Was it handled? 1 for yes, 0 for no. If the mouse is currently being used to select an object or resize a row or column, handles the operation and sets the handled flag to 1. Otherwise does nothing. void ═══ 2.20.4.15. MSheetView::mouse2MotionStart() ═══ mouse2MotionStart(int &) [virtual] int & Was it handled? 1 for yes, 0 for no. Based on the mouse position and the view's state, determines what action is being initiated. Sets internal values accordingly. void ═══ 2.20.4.16. MSheetView::mouse2Up() ═══ mouse2Up(const MPoint *, int, int &) [virtual] const MPoint * Unused int Unused int & Was it handled? 1 for yes, 0 for no. If a selection process was occuring, passes through to MSheetView::mouse2MotionEnd(). void ═══ 2.20.4.17. MSheetView::winContextMenu() ═══ winContextMenu(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Unused ULONG Unused MPARAM X and Y OS/2 window coordinates of point MPARAM Unused int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Determines what part of the sheet view - row headers, column headers, selected range, frame, etc. - lies under the given point, stores the appropriate context menu, and passes the given parameters to MView::winContextMenu() to show the menu. Always returns 1. MRESULT ═══ 2.20.4.18. MSheetView::winMouseMove() ═══ winMouseMove(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM X and Y OS/2 window coordinates of point MPARAM Unused int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Based on the type of mouse action and the internal state of the view, handles the action appropriately. MRESULT ═══ 2.20.5. Handling view display and redisplay ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.20.5.1. MSheetView::bufferWindow() ═══ bufferWindow() [virtual] Is this window to be buffered (see MWindow::bufferWindow())? Always returns 1. int ═══ 2.20.5.2. MSheetView::displayAddress() ═══ displayAddress(const MAddress *) [virtual] const MAddress * Address of the cell to display If the given cell is displayed within the sheet view, redisplay it. void ═══ 2.20.5.3. MSheetView::displayFrame() ═══ displayFrame(const char *) const char * Frame name If the given frame is displayed within the sheet view, redisplay it. void ═══ 2.20.5.4. MSheetView::displayRange() ═══ displayRange(const MRange *) [virtual] const MRange * MRange to show If any cell in the given frame is displayed within the sheet view, redisplay it. void ═══ 2.20.5.5. MSheetView::displayRangeDiff() ═══ displayRangeDiff(const MRange *, const MRange *) [virtual] const MRange * Range 1 const MRange * Range 2 If any cell in one, but not both, of the given ranges is displayed within the sheet view, redisplay it. void ═══ 2.20.5.6. MSheetView::displaySelectionDiff() ═══ displaySelectionDiff(const MSelection *, const MSelection *) [virtual] const MSelection * Selection 1 const MSelection * Selection 2 If the two selections are ranges, passes the range pointers through to MSheetView::displayRangeDiff(). Otherwise, redisplays the entire sheet. void ═══ 2.20.5.7. MSheetView::drawSelf() ═══ drawSelf(MDraw *, const MRect *) [virtual] MDraw * Region to draw to const MRect * Clipping rectangle Draws the sheet to the draw region, clipped to within the clipping rectangle provided (see MWindow::drawSelf()). Always returns 1. int ═══ 2.20.5.8. MSheetView::getDrawScale() ═══ getDrawScale() [virtual] Returns 1 if the current magnification is 100%, and 32 otherwise. float ═══ 2.20.5.9. MSheetView::getUpperLeft() ═══ getUpperLeft() [virtual] Passes through to MSelection::getUpperLeftPtr() for the current selection, returning the address of of the upper-left cell currently being displayed. const MAddress * ═══ 2.20.5.10. MSheetView::getUpperLeftColumn() ═══ getUpperLeftColumn() [virtual] Passes through to MSelection::getUpperLeftColumn() for the current selection, returning the left-most column currently being displayed. int ═══ 2.20.5.11. MSheetView::getUpperLeftRow() ═══ getUpperLeftRow() [virtual] Passes through to MSelection::getUpperLeftRow() for the current selection, returning the upper-most row currently being displayed. int ═══ 2.20.5.12. MSheetView::getViewScale() ═══ getViewScale() [virtual] Returns the current magnification. float ═══ 2.20.5.13. MSheetView::scrollFrom() ═══ scrollFrom(int, int) [virtual] int Row int Column Scrolls the sheet so that the cell at the given row and column appears at the upper left of the cell, then redisplays as needed. void ═══ 2.20.5.14. MSheetView::scrollToVisible() ═══ scrollToVisible(const MAddress *, int = 0) [virtual] const MAddress * Address to display int Actually scroll? 1 to scroll, 0 to not scroll. Default is 0. Determines the necessary offset to make the given cell appear in the sheet view (and scrolling if appropriate). Returns 1 if there is an offset necessary to display the given cell, 0 otherwise. (In other words, returns 0 if the given cell is already being displayed.) int ═══ 2.20.5.15. MSheetView::setUpperLeftColumn() ═══ setUpperLeftColumn(int) [virtual] int New upper left column Sets the left column of the displayed area to the given column. void ═══ 2.20.5.16. MSheetView::setUpperLeftRow() ═══ setUpperLeftRow(int) [virtual] int New upper left row Sets the top row of the displayed area to the given row. void ═══ 2.20.5.17. MSheetView::setViewScale() ═══ setViewScale(float s) [virtual] float s New magnification. Sets the magnification of the sheet view. void ═══ 2.20.6. Querying an MSheetView instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.20.6.1. MSheetView::getMesaView() ═══ getMesaView() [virtual] Returns a pointer to the Mesa view that controls this sheet view, if any. For more information, see "MMesaView". MMesaView * ═══ 2.20.6.2. MSheetView::hasDrawSelf() ═══ hasDrawSelf() [virtual] Always returns 1, indicating that MSheetView has a drawSelf() method (see MWindow::hasDrawSelf()). int ═══ 2.20.6.3. MSheetView::isEditing() ═══ isEditing() [virtual] Passes through to MMesaView::isEditing() for the Mesa view, returning 1 if editing, 0 if not. int ═══ 2.20.6.4. MSheetView::isEditingFormula() ═══ isEditingFormula() [virtual] Passes through to MMesaView::isEditingFormula() for the Mesa view, returning 1 if editing a formula, 0 if not. int ═══ 2.20.7. Transforming between view and layer coordinate frames ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.20.7.1. MSheetView::transformFromSheetToView() ═══ transformFromSheetToView(MRect *, MRect * = NULL) [virtual] MRect * Rectangle to be transformed MRect * Client window rectangle. Default is NULL (will be recalculated automatically) Transforms the first given rectangle from layer coordinates (relative to the upper left ot A1) to view coordinates (relative to upper left of view), applying any scaling factors and transformations that are needed. void ═══ 2.20.7.2. MSheetView::transformPoint() ═══ transformPoint(MPoint *, MRect * = NULL) [virtual] MPoint * Point to transform MRect * View rectangle to transform into. Defaults to null. Transforms a point from OS/2 window coordinates to frame coordinates. If view rectangle is not given, queries the client window of the sheet. Offsets the point within that rectangle, and then performs any scaling necessary on it. void ═══ 2.20.7.3. MSheetView::transformFromViewToSheet() ═══ transformFromViewToSheet(MRect *, MRect * = NULL) [virtual] MRect * Rectangle to be transformed MRect * Client window rectangle. Default is NULL (will be recalculated automatically) Transforms the first given rectangle from view coordinates (relative to upper left of view) to layer coordinates (relative to the upper left ot A1), applying any scaling factors and transformations that are needed. void ═══ 2.20.8. Handling row and column headers ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.20.8.1. MSheetView::setColumnTitleHeight() ═══ setColumnTitleHeight(int) [virtual] int New height of column headings Sets the height of the title above each column. void ═══ 2.20.8.2. MSheetView::setColumnTitles() ═══ setColumnTitles(const char **title, int numTitle) [virtual] const char **title List of titles for column headings int numTitle How many titles in the list? Sets the text of the given number of column headings to the given titles. void ═══ 2.20.8.3. MSheetView::setRowTitleWidth() ═══ setRowTitleWidth(int) [virtual] int New width of row headings Sets the width of the row headings. void ═══ 2.20.9. Other methods ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.20.9.1. MSheetView::newShape() ═══ newShape(int, const char *, int, int, int, int, int, int) [virtual] int Type of shape (see "Shape and imported graphic type constants") const MAddress * Anchor cell int X start position, offset from the address passed in int X start position, offset from the address passed in int Width int Height int Line width int Line type (arrowheads) Passes through to MMesaModel::newShape(), creating a new shape in the associated model. void ═══ 2.20.9.2. MSheetView::setCursor() ═══ setCursor(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Unused ULONG Unused MPARAM Unused MPARAM Unused int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Returns 0. MRESULT ═══ 2.21. MStream ═══ stream.h is the source file for this class. This class inherits from MObject Handles input and output in a platform-independant fashion. There are two subclasses of MStream defined within Mesa DOK - one to handle clipboard I/O (see MClipStream) and one to handle file I/O (see MFileStream). They behave identically on the application side, which allows other classes to write themselves out to and read themselves in from a "stream" of data without worrying about the details of the I/O device being used. You can subclass MStream within your own application to handle application-specific I/O in the same way. Most Mesa DOK classes can accept an MStream parameter for input or output. When an item is written to a stream, it should include an identifier, followed by the position in the stream of the next item (this allows stream-reading functions to simply skip over items they wish to ignore), followed by the item itself. The stream-output methods of each class are responsible for writing the items out a way that can be read by the appropriate stream-input methods; MStream itself does nothing but transfer the bits from one place to another. Each MStream subclass instance keeps track of its current position within the stream, and of the position of the next element in the stream (so that the current element can be skipped over). It also contains an exception, used to pass error messages back and forth (see MException) and a version number, which is not currently used for anything. ═══ 2.21.1. Creating and destroying an MStream instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.21.1.1. MStream::MStream() ═══ MStream() Sets the version to 0. void ═══ 2.21.1.2. MStream::~MStream() ═══ ~MStream() [virtual] Frees any allocated resources. void ═══ 2.21.2. Reading values ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.21.2.1. MStream::endRead() ═══ endRead() Moves to the next element in the stream, possibly skipping the current element. void ═══ 2.21.2.2. MStream::read()=0 ═══ read(void *, int) = 0[virtual] void * Buffer to read into int Number of bytes to read Does nothing; however, every class that inherits from MStream must implement this method to read a specified number of bytes from the stream into the buffer. Returns the number of bytes read. int ═══ 2.21.2.3. MStream::readChar() ═══ readChar() Reads an appropriate number of bytes for a single character, and returns that value. int ═══ 2.21.2.4. MStream::readInt() ═══ readInt() Reads an appropriate number of bytes for an integer, and returns that value. int ═══ 2.21.2.5. MStream::readLong() ═══ readLong() Reads an appropriate number of bytes for a long integer, and returns that value. long ═══ 2.21.2.6. MStream::readLongDouble() ═══ readLongDouble() Reads an appropriate number of bytes for a long double, and returns that value. long double ═══ 2.21.2.7. MStream::readNumber() ═══ readNumber() Reads an appropriate number of bytes for a double, and returns that value. double ═══ 2.21.2.8. MStream::readPointer() ═══ readPointer() Reads an appropriate number of bytes for a pointer, and returns that value. Note that the stream actually writes and reads the address, and so this method is only useful for pointers to structures that are in the same place as they were when they were written. void * ═══ 2.21.2.9. MStream::readPtr() ═══ readPtr() Reads an appropriate number of bytes for a single character, and returns a pointer to a null-terminated string. Note that the string must be MFree'd to avoid memory leaks. void * ═══ 2.21.2.10. MStream::readShort() ═══ readShort() Reads an appropriate number of bytes for a short integer, and returns that value. short ═══ 2.21.2.11. MStream::readStr() ═══ readStr() Reads an appropriate number of bytes and returns a pointer to a null-terminated string. Note that the string must be MFree'd to avoid memory leaks. char * ═══ 2.21.2.12. MStream::readString() ═══ readString() Reads an appropriate number of bytes and returns a pointer to a null-terminated string. Note that the string must be MFree'd to avoid memory leaks. char * ═══ 2.21.2.13. MStream::readUChar() ═══ readUChar() Reads an appropriate number of bytes for a single unsigned character, and returns that value. int ═══ 2.21.2.14. MStream::readULong() ═══ readULong() Reads an appropriate number of bytes for an unsigned long integer, and returns that value. unsigned long ═══ 2.21.2.15. MStream::readUShort() ═══ readUShort() Reads an appropriate number of bytes for an unsigned short integer, and returns that value. unsigned short ═══ 2.21.2.16. MStream::readXLDouble() ═══ readXLDouble() Reads an appropriate number of bytes for an Excel-format double, and returns that value. double ═══ 2.21.2.17. MStream::readXLInt() ═══ readXLInt() Reads an appropriate number of bytes for an Excel-format integer, and returns that value. int ═══ 2.21.2.18. MStream::readXLRK() ═══ readXLRK() Reads an appropriate number of bytes for an Excel-format compact floating point number, and returns that value. Consult the Microsoft Excel reference for format specifics. double ═══ 2.21.2.19. MStream::readXLString() ═══ readXLString(char *) char * Buffer to store the string Reads an appropriate number of bytes for an Excel-format string, and stores that value. void ═══ 2.21.2.20. MStream::setupRead() ═══ setupRead() Reads the data type of the current element in the stream, sets the next position to the location of the next element in the stream, and positions the stream pointer to the start of the current element itself. Returns data type of the element in the stream. int ═══ 2.21.2.21. MStream::unsetRead() ═══ unsetRead() Cancels the pending read operaton, resetting the stream position to the data type of the current element. void ═══ 2.21.3. Writing values ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.21.3.1. MStream::endWrite() ═══ endWrite() Writes the starting position of the next item to the stream. void ═══ 2.21.3.2. MStream::endWK3Write() ═══ endWK3Write() Writes the starting position of the next item to the stream. void ═══ 2.21.3.3. MStream::endXLWrite() ═══ endXLWrite() Writes the starting position of the next item to the stream. void ═══ 2.21.3.4. MStream::setupWrite() ═══ setupWrite(int) int Data type of the element to be written Writes the data type out, prepares a location for the next position, and sets the stream position to the appropriate spot to begin writing data. void ═══ 2.21.3.5. MStream::setupWK3Write() ═══ setupWK3Write(int) int Data type of the element to be written Writes the data type out, prepares a location for the next position, and sets the stream position to the appropriate spot to begin writing data. void ═══ 2.21.3.6. MStream::setupXLWrite() ═══ setupXLWrite(int) int Data type of the element to be written Writes the data type out, prepares a location for the next position, and sets the stream position to the appropriate spot to begin writing data. void ═══ 2.21.3.7. MStream::write()=0 ═══ write(const void *, int) = 0 [virtual] const void * Buffer from which to write int Number of bytes to write Does nothing; however, every class that inherits from MStream must implement this method to write a specified number of bytes from the buffer to the stream. Returns the number of bytes written. int ═══ 2.21.3.8. MStream::writeInt() ═══ writeInt(int) int Value to be written Writes the given value to the stream. void ═══ 2.21.3.9. MStream::writeLongDouble() ═══ writeLongDouble(long double d) long double d Value to be written Writes the given value to the stream. void ═══ 2.21.3.10. MStream::writeNumber() ═══ writeNumber(double) double Value to be written Writes the given value to the stream. void ═══ 2.21.3.11. MStream::writePointer() ═══ writePointer(void *) void * Pointer to be written. Writes the address of the given pointer to the stream. Note that this is only useful if the pointer will be in the same location at read-time. void ═══ 2.21.3.12. MStream::writePtr() ═══ writePtr(const void *, int) const void * Pointer to a string value to be written int Number of bytes to write Writes the given value to the stream. void ═══ 2.21.3.13. MStream::writeRTF() ═══ writeRTF(const char *) const char * Value to be written Writes the given value to the stream. void ═══ 2.21.3.14. MStream::writes() ═══ writes(const char *) const char * Value to be written Writes the given value to the stream. void ═══ 2.21.3.15. MStream::writeShort() ═══ writeShort(short) short Value to be written Writes the given value to the stream. void ═══ 2.21.3.16. MStream::writeStr() ═══ writeStr(const char *) const char * Value to be written Writes the given value to the stream. void ═══ 2.21.3.17. MStream::writeString() ═══ writeString(const char *) const char * Value to be written Writes the given value to the stream. void ═══ 2.21.3.18. MStream::writeUChar() ═══ writeUChar(unsigned char) unsigned char Value to be written Writes the given value to the stream. void ═══ 2.21.4. Querying the MStream instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.21.4.1. MStream::getError() ═══ getError() Passes through to MException::getError() for the stream's exception, returning the stored error value or noError, if no error is stored. int ═══ 2.21.4.2. MStream::getException() ═══ getException() Returns a pointer to the stream's exception. const MException * ═══ 2.21.4.3. MStream::getStreamLen()=0 ═══ getStreamLen() = 0[virtual] Does nothing; however, every class that inherits from MStream must implement this method to return the total size of the stream. int ═══ 2.21.4.4. MStream::getVersion() ═══ getVersion() Returns the version number. int ═══ 2.21.4.5. MStream::isError() ═══ isError() TRUE if an error is set, FALSE otherwise int ═══ 2.21.5. Navigating within the stream ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.21.5.1. MStream::getPos()=0 ═══ getPos() =0 [virtual] Does nothing; however, every class that inherits from MStream must implement this method to return the position within the stream. int ═══ 2.21.5.2. MStream::isEOF()=0 ═══ isEOF() =0 [virtual] Does nothing; however, every class that inherits from MStream must implement this method to return 1 if at the end of the stream; 0 otherwise. int ═══ 2.21.5.3. MStream::seek()=0 ═══ seek(int) = 0[virtual] int New position Does nothing; however, every class that inherits from MStream must implement this method to move to the specified position within the stream. Returns the new position within the stream. int ═══ 2.21.6. Setting attributes and version number ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.21.6.1. MStream::setAttributes() ═══ setAttributes(const char *) [virtual] const char * Attribute string to set Does nothing; however, any class that inherits from MStream may implement this method to set OS/2 attributes. void ═══ 2.21.6.2. MStream::setMesaAttributes() ═══ setMesaAttributes() [virtual] Does nothing; however, any class that inherits from MStream may implement this method to set any Mesa-specific attributes. void ═══ 2.21.6.3. MStream::setVersion() ═══ setVersion(int) int New version number Sets the version of the stream to the value passed in. void ═══ 2.22. MView ═══ view.h is the source file for this class. This class inherits from MWindow Handles abstract views - display regions that can be placed inside a normal OS/2 window. The other Mesa DOK view classes, such as MMesaView and MSheetView, are all subclasses of MView. Each MView instance keeps track of the current context menu, the parent window, and a "superparent" window. It also keeps track of the same information as MWindow (see MWindow). To create a customized display region within your application, simply create your own MView subclass. ═══ 2.22.1. Creating, destroying, and setting up an MView instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.22.1.1. MView::MView() ═══ MView(HWND, int, HWND=0) HWND Handle to parent window int Context menu identifier HWND Superparent window Passes through to MWindow::MWindow(), sets the parent and superparent of the instance, and loads the context menu. void MView(MWindow *, int, HWND=0) MWindow * Parent window int Context menu identifier HWND Superparent window Passes through to MWindow::MWindow(), sets the parent and superparent of the instance, and loads the context menu. void ═══ 2.22.1.2. MView::~MView() ═══ ~MView() [virtual] Destroys the MView instance and releases all allocated resources, including any context menus. void ═══ 2.22.1.3. MView::cleanUp() ═══ cleanUp() [virtual] Passes through to MWindow::cleanUp(). void ═══ 2.22.1.4. MView::setUp() ═══ setUp(const MRect *, int = 0) [virtual] const MRect * Rectangle to create window within int Window style. Default is 0 Creates a new window the size and location of the given rectangle. void ═══ 2.22.2. Handling format changes ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.22.2.1. MView::bkgColorDroppedAt() ═══ bkgColorDroppedAt(MColor, int, int) [virtual] MColor Background color that was dropped int x coord of the drop int y coord of the drop By default, this method does nothing; any class that inherits from MView may override this method to handle a background color being dropped on the view. void ═══ 2.22.2.2. MView::colorDroppedAt() ═══ colorDroppedAt(MColor, int, int) [virtual] MColor Color that was dropped int x coord of the drop int y coord of the drop By default, this method does nothing; any class that inherits from MView may override this method to handle a color being dropped on the view. void ═══ 2.22.2.3. MView::fontDroppedAt() ═══ fontDroppedAt(const MFont *, int, int) [virtual] const MFont * Font that was dropped . int x coord of the drop int y coord of the drop By default, this method does nothing; any class that inherits from MView may override this method to handle a font being dropped on the view. void ═══ 2.22.2.4. MView::winPresParamChanged() ═══ winPresParamChanged(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Responds to a FOREGROUNDCOLOR, BACKGROUNDCOLOR, or FONTNAMESIZE change in presentation parameters by converting the OS/2 message into a bkgColorDropped, ColorDropped, or FontDropped method. MRESULT ═══ 2.22.3. Displaying the view ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.22.3.1. MView::drawSelf() ═══ drawSelf(MDraw *, const MRect *) [virtual] MDraw Region to draw to const MRect * Clipping rectangle By default, this method returns 1 and does nothing; any class that inherits from MView must override this method to handle drawing itself. int ═══ 2.22.4. Setting and identifying parent windows ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.22.4.1. MView::getSuperHWND() ═══ getSuperHWND() [virtual] Returns handle to the parent window. HWND ═══ 2.22.4.2. MView::getSuperview() ═══ getSuperview() [virtual] Returns the parent window. MWindow * ═══ 2.22.4.3. MView::setSuperHWND() ═══ setSuperHWND(HWND) [virtual] HWND New parent window Sets the parent window to the given window. void ═══ 2.22.4.4. MView::setSuperview() ═══ setSuperview(MWindow *) [virtual] MWindow * New parent window Sets the parent window to the given window. void ═══ 2.22.4.5. MView::setViewPos() ═══ setViewPos(const MRect *) [virtual] const MRect * New position for the view Sets the coordinates of the current view to those of the rectangle passed in. void ═══ 2.22.5. Handling help and context-sensitive menus ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.22.5.1. MView::getObjectMenu() ═══ getObjectMenu() [virtual] Returns item identifier of the context menu. int ═══ 2.22.5.2. MView::winContextMenu() ═══ winContextMenu(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Pops up the currently-specified context menu. MRESULT ═══ 2.22.5.3. MView::winHelp() ═══ winHelp(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) Passes through to WinPostMessage(), sets handled flag to 1 and returns 0. MRESULT ═══ 2.23. MWindow ═══ mwindow.h is the source file for this class. This class inherits from MObject MWindow is the basic Mesa window class; all windows within the application are subclasses of MWindow. In many cases, MWindow functions simply pass messages along to the default OS/2 window handler and pass the results back. (Unless otherwise noted, the methods described here do precisely that. For any function which returns an MRESULT, the meaning of the return parameter is the same as the meaning of the return parameter for the corresponding OS/2 message.) Each MWindow instance keeps track of the frame and client window, if appropriate, and of the default window procedure function for the frame window (in order to pass messages back to the default message handler). ═══ 2.23.1. Creating and destroying an MWindow instance ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.23.1.1. MWindow::MWindow() ═══ MWindow() Clears the values for frame, client, and window procedure function. void ═══ 2.23.1.2. MWindow::~MWindow() ═══ ~MWindow() [virtual] Destroys the MWindow instance. void ═══ 2.23.1.3. MWindow::aboutToDestroy() ═══ aboutToDestroy() [virtual] Clears the values for frame and client windows. void ═══ 2.23.2. MWindow methods ═══ Open the Contents view and expand this section to see a list of methods. ═══ 2.23.2.1. MWindow::bufferWindow() ═══ bufferWindow() [virtual] By default, this method returns 0; any class that inherits from MWindow may override this method to indicate whether the window display should be buffered (1 for yes, 0 for no). int ═══ 2.23.2.2. MWindow::canExecute() ═══ canExecute(int, int &) [virtual] int Command int & Storage location for flags By default, this method returns 0 and clears all flags; any class that inherits from MWindow may override this method to indicate whether the window can execute the given message (1 for yes, 0 for no). int ═══ 2.23.2.3. MWindow::changedSize() ═══ changedSize(HWND, MChange *) [virtual] HWND Window handle MChange * List of cells whose size has changed By default, this method returns 0 and does nothing; any class that inherits from MWindow may override this method to deal with a size change of the window or its contents. MRESULT ═══ 2.23.2.4. MWindow::cleanUp() ═══ cleanUp() [virtual] Sets values of the frame and client windows, if they exist, and adds the frame window to the controller's destroy list. void ═══ 2.23.2.5. MWindow::contentsChanged() ═══ contentsChanged(MChange *) [virtual] MChange * List of cells whose contents have changed By default, this method does nothing; any class that inherits from MWindow may override this method to indicate that the contents of a range of cells has changed and deal with the changes. void ═══ 2.23.2.6. MWindow::createStdWindow() ═══ createStdWindow(HWND, ULONG, PULONG, PSZ, ULONG, HMODULE, ULONG, PHWND) [virtual] HWND Parent window handle ULONG Style of the frame window PULONG Create flags PSZ Client window class ULONG Client style HMODULE Handle to the resource management module ULONG Resource ID to associate to the window PHWND Client window handle Passes through to WinCreateStdWindow(). Subclasses the window procedure and installs appHandleWindowProc() as the message handler. Stores this pointer as the window value and returns a handle to the frame window created. HWND ═══ 2.23.2.7. MWindow::createWindow() ═══ createWindow (HWND, PSZ, ULONG, LONG, LONG, LONG, LONG, HWND, HWND) [virtual] HWND Parent window handle PSZ Window Name ULONG Style LONG X coordinate LONG Y coordinate LONG Width LONG Height HWND Owner window HWND Handle of window behind which this window will be placed. Creates a window of the class M_APP_WINDOW and returns a handle to the window created. HWND ═══ 2.23.2.8. MWindow::cycleCalcIndicator() ═══ cycleCalcIndicator() [virtual] By default, this method does nothing; any class that inherits from MWindow may override this method to implement a visual indicator of recalculation efforts. void ═══ 2.23.2.9. MWindow::dragDiscardObject() ═══ dragDiscardObject(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_DISCARDOBJECT message. MRESULT ═══ 2.23.2.10. MWindow::dragDrop() ═══ dragDrop(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_DROP message. MRESULT ═══ 2.23.2.11. MWindow::dragDropHelp() ═══ dragDropHelp(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_DROPHELP message. MRESULT ═══ 2.23.2.12. MWindow::dragEmphasizeTarget() ═══ dragEmphasizeTarget(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_EMPHASIZETARGET message. MRESULT ═══ 2.23.2.13. MWindow::dragEndConversation() ═══ dragEndConversation(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_ENDCONVERSATION message. MRESULT ═══ 2.23.2.14. MWindow::dragError() ═══ dragError(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_DRAGERROR message. MRESULT ═══ 2.23.2.15. MWindow::dragFileComplete() ═══ dragFileComplete(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_DRAGFILECOMPLETE message. MRESULT ═══ 2.23.2.16. MWindow::dragFileRendered() ═══ dragFileRendered(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_FILERENDERED message. MRESULT ═══ 2.23.2.17. MWindow::dragLeave() ═══ dragLeave(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_DRAGLEAVE message. MRESULT ═══ 2.23.2.18. MWindow::dragOver() ═══ dragOver(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_DRAGOVER message. MRESULT ═══ 2.23.2.19. MWindow::dragOverNotify() ═══ dragOverNotify(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_DRAGOVERNOTIFY message. MRESULT ═══ 2.23.2.20. MWindow::dragPrintObject() ═══ dragPrintObject(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_PRINTOBJECT message. MRESULT ═══ 2.23.2.21. MWindow::dragRender() ═══ dragRender(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_RENDER message. MRESULT ═══ 2.23.2.22. MWindow::dragRenderComplete() ═══ dragRenderComplete(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_RENDERCOMPLETE message. MRESULT ═══ 2.23.2.23. MWindow::dragRenderFile() ═══ dragRenderFile(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_RENDERFILE message. MRESULT ═══ 2.23.2.24. MWindow::dragRenderPrepare() ═══ dragRenderPrepare(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the DM_RENDERPREPARE message. MRESULT ═══ 2.23.2.25. MWindow::drawSelf() ═══ drawSelf(MDraw *, const MRect *) [virtual] MDraw * Region to draw in const MRect * Clipping rectangle By default, this method returns 1 and does nothing; any class that inherits from MWindow should override this method to implement its own drawing behavior and return 1 if redrawn, or 0 otherwise. int ═══ 2.23.2.26. MWindow::formatChanged() ═══ formatChanged(MChange *) [virtual] MChange * List of cells that have had a format change By default, this method does nothing; any class that inherits from MWindow may override this method to indicate that the display format for a range of cells has changed. void ═══ 2.23.2.27. MWindow::getButtonValue() ═══ getButtonValue(int) [virtual] int Identifier of the button to retrieve value of Valid only for check boxes, 3-state boxes, and radio buttons. Returns the state of the button (1 if selected, 2 if not selected, 0 if undetermined). int ═══ 2.23.2.28. MWindow::getClientWindow() ═══ getClientWindow() const [virtual] Returns handle of the client window. HWND ═══ 2.23.2.29. MWindow::getClientWindowViewRect() ═══ getClientWindowViewRect(MRect *) const [virtual] MRect * MRect instance to make equal to client window Sets the given rectangle to the size of the client window. void getClientWindowViewRect(RECTL *) const [virtual] RECTL * RECTL to store values in Sets the given rectangle to the size of the client window. void ═══ 2.23.2.30. MWindow::getDrawScale() ═══ getDrawScale() [virtual] By default, this method returns 1.0; any class that inherits from MWindow may override this method to return the current draw scale. float ═══ 2.23.2.31. MWindow::getFont() ═══ getFont() [virtual] Returns the current window default font. const MFont * ═══ 2.23.2.32. MWindow::getFormat() ═══ getFormat() [virtual] Returns the current window default format. const MFormat * ═══ 2.23.2.33. MWindow::getFrameRect() ═══ getFrameRect(MRect *) const [virtual] MRect * MRect instance to make equal to frame window Sets the given rectangle to the size of the frame window. void getFrameRect(RECTL *) const [virtual] RECTL * RECTL to store values in Sets the given rectangle to the size of the frame window. void ═══ 2.23.2.34. MWindow::getFrameWindow() ═══ getFrameWindow() const [virtual] Returns handle of the frame window. HWND ═══ 2.23.2.35. MWindow::getItemText() ═══ getItemText(int, char *) [virtual] int Item identifier char * Buffer to store the text Stores the text of the given item. void ═══ 2.23.2.36. MWindow::getItemValue() ═══ getItemValue(int) [virtual] int Item identifier Returns the numeric equivalent of the given item's text, or 0 if no numeric equivalent exists. double ═══ 2.23.2.37. MWindow::getRadioValue() ═══ getRadioValue(int, const int *) [virtual] int Number of items in the list const int * Array of item identifiers Returns the index number of the first item in the given list which has a non-zero value, or 0 if all are de-selected. int ═══ 2.23.2.38. MWindow::getRect() ═══ getRect(MRect *) const [virtual] MRect * Storage for the rectangle Sets the given rectangle to the size of the client window. void getRect(RECTL *) const [virtual] RECTL * Storage for the rectangle Sets the given rectangle to the size of the client window. void ═══ 2.23.2.39. MWindow::getSelectValue() ═══ getSelectValue(int) [virtual] int Item identifier of the listbox in question Returns the item number selected in the given listbox. int ═══ 2.23.2.40. MWindow::getSpinValue() ═══ getSpinValue(int) [virtual] int Item identifier of the spinbutton in question Returns the value selected for the given spinbutton. int ═══ 2.23.2.41. MWindow::getWinProc() ═══ getWinProc() [virtual] Returns the original window procedure of the frame window. PFNWP ═══ 2.23.2.42. MWindow::handleChar() ═══ handleChar(int, int, int &) [virtual] int Character int Key flags int & Handled flag By default, this method returns 0 and does nothing; any class that inherits from MWindow may override this method to handle keyboard characters. MRESULT ═══ 2.23.2.43. MWindow::hasDrawSelf() ═══ hasDrawSelf() [virtual] Returns 0, indicating that this class does not have a drawSelf() method. int ═══ 2.23.2.44. MWindow::invalidateRect() ═══ invalidateRect(const MRect *) [virtual] const MRect * Rectangle to invalidate Creates an RECTL equivalent to the given rectangle and passes it through to WinInvalidateRect(). void ═══ 2.23.2.45. MWindow::isMesaWindow() ═══ isMesaWindow(HWND) HWND Window handle Returns 1 if the given HWND represents a Mesa window, 0 otherwise. static int ═══ 2.23.2.46. MWindow::isWindowMaximized() ═══ isWindowMaximized(HWND) HWND Window handle Returns 1 if the window is maximized, 0 otherwise. static int ═══ 2.23.2.47. MWindow::isWindowMinimized() ═══ isWindowMinimized(HWND) HWND Window handle Returns 1 if the window is minimized, 0 otherwise. static int ═══ 2.23.2.48. MWindow::itemNumFromList() ═══ itemNumFromList(int, int, const int *) [virtual] int Item identifier to look for int Number of elements in the item list const int * List of item identifiers Returns the index of the given item identifier in the given list of identifiers, or 0 if not found. int ═══ 2.23.2.49. MWindow::memOpenRevert() ═══ memOpenRevert(int &) [virtual] int & Handled flag By default, this method does nothing; any class that inherits from MWindow may override this method. For example, the Mesa 2 application implements this method to open a file, if one is scheduled to be opened. void ═══ 2.23.2.50. MWindow::mouse1Click() ═══ mouse1Click(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton1Click(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.51. MWindow::mouse1DblClick() ═══ mouse1DblClick(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton1DoubleClick(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.52. MWindow::mouse1Down() ═══ mouse1Down(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton1(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.53. MWindow::mouse1MotionEnd() ═══ mouse1MotionEnd(int &) [virtual] int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton1MotionEnd(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.54. MWindow::mouse1MotionStart() ═══ mouse1MotionStart(int &) [virtual] int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton1MotionStart(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.55. MWindow::mouse1Up() ═══ mouse1Up(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton1Up(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.56. MWindow::mouse2Click() ═══ mouse2Click(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton2Click(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.57. MWindow::mouse2DblClick() ═══ mouse2DblClick(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton2DoubleClick(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.58. MWindow::mouse2Down() ═══ mouse2Down(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton2(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.59. MWindow::mouse2MotionEnd() ═══ mouse2MotionEnd(int &) [virtual] int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton2MotionEnd(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.60. MWindow::mouse2MotionStart() ═══ mouse2MotionStart(int &) [virtual] int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton2MotionStart(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.61. MWindow::mouse2Up() ═══ mouse2Up(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton2Up(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.62. MWindow::mouse3Click() ═══ mouse3Click(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton3Click(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.63. MWindow::mouse3DblClick() ═══ mouse3DblClick(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton3DoubleClick(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.64. MWindow::mouse3Down() ═══ mouse3Down(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton3(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.65. MWindow::mouse3MotionEnd() ═══ mouse3MotionEnd(int &) [virtual] int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton3MotionEnd(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.66. MWindow::mouse3MotionStart() ═══ mouse3MotionStart(int &) [virtual] int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton3MotionStart(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.67. MWindow::mouse3Up() ═══ mouse3Up(const MPoint *, int, int &) [virtual] const MPoint * Location of the mouse int Keyboard control flags int & Has it been handled? 1 for yes, 0 for no. This method is called if the message handler does not handle MWindow::winButton3Up(). By default, it does nothing; any class that inherits from MWindow may override this method to handle the event (and should set the handled flag to 1, if so). void ═══ 2.23.2.68. MWindow::percentChanged() ═══ percentChanged(int) [virtual] int New percent-changed value By default, this method does nothing; any class that inherits from MWindow may override this method to indicate the progress of a long procedure void ═══ 2.23.2.69. MWindow::resetView() ═══ resetView(MChange *) [virtual] MChange * Cells that have changed By default, this method returns 0 and does nothing; any class that inherits from MWindow may override this method to handle rearranging itself and return an appropriate result (usually 1 for success, 0 for failure). MRESULT ═══ 2.23.2.70. MWindow::setButtonValue() ═══ setButtonValue(int, int) [virtual] int Item identifier int New value Sets the value of the given item to the given value. Item must be a radio button, checkbox, or 3-state checkbox. void ═══ 2.23.2.71. MWindow::setClientWindow() ═══ setClientWindow(HWND) [virtual] HWND New value for client window Sets the client window value to the given window handle. void ═══ 2.23.2.72. MWindow::setFocus() ═══ setFocus() [virtual] Passes the client window through to WinSetFocus(). void ═══ 2.23.2.73. MWindow::setFont() ═══ setFont(const MFont *newFont) [virtual] const MFont *newFont New font Sets the window default font to the given font. void ═══ 2.23.2.74. MWindow::setFormat() ═══ setFormat(const MFormat *newFormat) [virtual] const MFormat *newFormat Sets the window default format to the given format. void ═══ 2.23.2.75. MWindow::setFrameWindow() ═══ setFrameWindow(HWND) [virtual] HWND New value for frame window Sets the frame window value to the given window handle. void ═══ 2.23.2.76. MWindow::setItemText() ═══ setItemText(int, const char *) [virtual] int Item identifier const char * New text value Sets the text for the given item to the given string. void ═══ 2.23.2.77. MWindow::setItemValue() ═══ setItemValue(int, double) [virtual] int Item identifier double Number to store in the item Sets the text of the given item to the string equivalent of the given number. void ═══ 2.23.2.78. MWindow::setRadioValue() ═══ setRadioValue(int, int, const int *) [virtual] int Which item (in list) to set? int Number of items in the list const int * List of items Sets the value of the given item (referenced by an index into the item list) to 1, and sets the other item values to 0. void ═══ 2.23.2.79. MWindow::setSelectValue() ═══ setSelectValue(int, int) [virtual] int Listbox identifier int New item to select Selects the given item within the given listbox. void ═══ 2.23.2.80. MWindow::setSpinValue() ═══ setSpinValue(int, int) [virtual] int Spinbutton identifier int New value to set Sets the given value within the given spin button. void ═══ 2.23.2.81. MWindow::setUp() ═══ setUp(const MRect *, int=0) [virtual] const MRect * Rectangle parameter int Default is 0 By default, this method returns 0 and does nothing; any class that inherits from MWindow may override this method to handle setup. void ═══ 2.23.2.82. MWindow::setWinProc() ═══ setWinProc(PFNWP) [virtual] PFNWP New window procedure Sets the window procedure to the given function. void ═══ 2.23.2.83. MWindow::threadRexxFuncs() ═══ threadRexxFuncs() [virtual] By default, this method does nothing; any class that inherits from MWindow may override this method to execute a REXX function (for example, the next function on a controller-wide REXX function queue). void ═══ 2.23.2.84. MWindow::update() ═══ update() [virtual] Invalidates the entire frame window, thereby forcing a redraw. void ═══ 2.23.2.85. MWindow::updateLayerNumber() ═══ updateLayerNumber(int) [virtual] int Layer number to update By default, this method returns 0 and does nothing; any class that inherits from MWindow may override this method to handle a change in the layer being displayed. void ═══ 2.23.2.86. MWindow::updateWindow() ═══ updateWindow() [virtual] Passes the client window to WinUpdateWindow(). void ═══ 2.23.2.87. MWindow::winActivate() ═══ winActivate(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_ACTIVATE message. MRESULT ═══ 2.23.2.88. MWindow::winAdjustWindowPos() ═══ winAdjustWindowPos(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_ADJUSTWINDOWPOS message. MRESULT ═══ 2.23.2.89. MWindow::winAppTerminateNotify() ═══ winAppTerminateNotify(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_APPTERMINATENOTIFY message. MRESULT ═══ 2.23.2.90. MWindow::winBeginDrag() ═══ winBeginDrag(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BEGINDRAG message. MRESULT ═══ 2.23.2.91. MWindow::winBeginSelect() ═══ winBeginSelect(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BEGINSELECT message. MRESULT ═══ 2.23.2.92. MWindow::winButton1() ═══ winButton1(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON1DOWN message. MRESULT ═══ 2.23.2.93. MWindow::winButton1Click() ═══ winButton1Click(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON1CLICK message. MRESULT ═══ 2.23.2.94. MWindow::winButton1DoubleClick() ═══ winButton1DoubleClick(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON1DBLCLK message. MRESULT ═══ 2.23.2.95. MWindow::winButton1MotionEnd() ═══ winButton1MotionEnd(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON1MOTIONEND message. MRESULT ═══ 2.23.2.96. MWindow::winButton1MotionStart() ═══ winButton1MotionStart(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON1MOTIONSTART message. MRESULT ═══ 2.23.2.97. MWindow::winButton1Up() ═══ winButton1Up(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON1UP message. MRESULT ═══ 2.23.2.98. MWindow::winButton2() ═══ winButton2(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON2DOWN message. MRESULT ═══ 2.23.2.99. MWindow::winButton2Click() ═══ winButton2Click(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON2CLICK message. MRESULT ═══ 2.23.2.100. MWindow::winButton2DoubleClick() ═══ winButton2DoubleClick(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON2DBLCLK message. MRESULT ═══ 2.23.2.101. MWindow::winButton2MotionEnd() ═══ winButton2MotionEnd(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON2MOTIONEND message. MRESULT ═══ 2.23.2.102. MWindow::winButton2MotionStart() ═══ winButton2MotionStart(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON2MOTIONSTART message. MRESULT ═══ 2.23.2.103. MWindow::winButton2Up() ═══ winButton2Up(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON2UP message. MRESULT ═══ 2.23.2.104. MWindow::winButton3() ═══ winButton3(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON3DOWN message. MRESULT ═══ 2.23.2.105. MWindow::winButton3Click() ═══ winButton3Click(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON3CLICK message. MRESULT ═══ 2.23.2.106. MWindow::winButton3DoubleClick() ═══ winButton3DoubleClick(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON3DBLCLK message. MRESULT ═══ 2.23.2.107. MWindow::winButton3MotionEnd() ═══ winButton3MotionEnd(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON3MOTIONEND message. MRESULT ═══ 2.23.2.108. MWindow::winButton3MotionStart() ═══ winButton3MotionStart(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON3MOTIONSTART message. MRESULT ═══ 2.23.2.109. MWindow::winButton3Up() ═══ winButton3Up(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_BUTTON3UP message. MRESULT ═══ 2.23.2.110. MWindow::winCalcFrameRect() ═══ winCalcFrameRect(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_CALCFRAMERECT message. MRESULT ═══ 2.23.2.111. MWindow::winCalcValidRects() ═══ winCalcValidRects(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_CALCVALIDRECTS message. MRESULT ═══ 2.23.2.112. MWindow::winChar() ═══ winChar(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_CHAR message. MRESULT ═══ 2.23.2.113. MWindow::winChord() ═══ winChord(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_CHORD message. MRESULT ═══ 2.23.2.114. MWindow::winClose() ═══ winClose(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the OS/2 WM_CLOSE message. MRESULT ═══ 2.23.2.115. MWindow::winCommand() ═══ winCommand(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the OS/2 WM_COMMAND message. MRESULT ═══ 2.23.2.116. MWindow::winContextHelp() ═══ winContextHelp(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the OS/2 WM_CONTEXTHELP message. MRESULT ═══ 2.23.2.117. MWindow::winContextMenu() ═══ winContextMenu(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the OS/2 WM_CONTEXTMENU message. MRESULT ═══ 2.23.2.118. MWindow::winControl() ═══ winControl(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_CONTROL message. MRESULT ═══ 2.23.2.119. MWindow::winControlPointer() ═══ winControlPointer(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_CONTROLPOINTER message. MRESULT ═══ 2.23.2.120. MWindow::winCreate() ═══ winCreate(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_CREATE message. MRESULT ═══ 2.23.2.121. MWindow::winDDEAck() ═══ winDDEAck(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DDE_ACK message. MRESULT ═══ 2.23.2.122. MWindow::winDDEAdvise() ═══ winDDEAdvise(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DDE_ADVISE message. MRESULT ═══ 2.23.2.123. MWindow::winDDEData() ═══ winDDEData(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DDE_DATA message. MRESULT ═══ 2.23.2.124. MWindow::winDDEExecute() ═══ winDDEExecute(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DDE_EXECUTE message. MRESULT ═══ 2.23.2.125. MWindow::winDDEInitiate() ═══ winDDEInitiate(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DDE_INITIATE message. MRESULT ═══ 2.23.2.126. MWindow::winDDEInitiateAck() ═══ winDDEInitiateAck(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DDE_INITIATEACK message. MRESULT ═══ 2.23.2.127. MWindow::winDDEPoke() ═══ winDDEPoke(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DDE_POKE message. MRESULT ═══ 2.23.2.128. MWindow::winDDERequest() ═══ winDDERequest(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DDE_REQUEST message. MRESULT ═══ 2.23.2.129. MWindow::winDDETerminate() ═══ winDDETerminate(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DDE_TERMINATE message. MRESULT ═══ 2.23.2.130. MWindow::winDDEUnadvise() ═══ winDDEUnadvise(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DDE_UNADVISE message. MRESULT ═══ 2.23.2.131. MWindow::winDefault() ═══ winDefault(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the default window procedure. MRESULT ═══ 2.23.2.132. MWindow::winDestroy() ═══ winDestroy(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DESTROY message. MRESULT ═══ 2.23.2.133. MWindow::winDestroyClipboard() ═══ winDestroyClipboard(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DESTROYCLIPBOARD message. MRESULT ═══ 2.23.2.134. MWindow::winDrawClipboard() ═══ winDrawClipboard(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DRAWCLIPBOARD message. MRESULT ═══ 2.23.2.135. MWindow::winDrawItem() ═══ winDrawItem(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_DRAWITEM message. MRESULT ═══ 2.23.2.136. MWindow::winEnable() ═══ winEnable(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_ENABLE message. MRESULT ═══ 2.23.2.137. MWindow::winEndDrag() ═══ winEndDrag(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_ENDDRAG message. MRESULT ═══ 2.23.2.138. MWindow::winEndSelect() ═══ winEndSelect(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_ENDSELECT message. MRESULT ═══ 2.23.2.139. MWindow::winEraseBackground() ═══ winEraseBackground(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_ERASEBACKGROUND message. MRESULT ═══ 2.23.2.140. MWindow::winExtMouseFirst() ═══ winExtMouseFirst(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler. MRESULT ═══ 2.23.2.141. MWindow::winExtMouseLast() ═══ winExtMouseLast(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler. MRESULT ═══ 2.23.2.142. MWindow::winFlashWindow() ═══ winFlashWindow(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_FLASHWINDOW message. MRESULT ═══ 2.23.2.143. MWindow::winFocusChanged() ═══ winFocusChanged(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_FOCUSCHANGE message. MRESULT ═══ 2.23.2.144. MWindow::winFormatFrame() ═══ winFormatFrame(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_FORMATFRAME message. MRESULT ═══ 2.23.2.145. MWindow::winHScroll() ═══ winHScroll(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_HSCROLL message. MRESULT ═══ 2.23.2.146. MWindow::winHScrollClipboard() ═══ winHScrollClipboard(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_HSCROLLCLIPBOARD message. MRESULT ═══ 2.23.2.147. MWindow::winHelp() ═══ winHelp(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_HELP message. MRESULT ═══ 2.23.2.148. MWindow::winHitTest() ═══ winHitTest(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_HITTEST message. MRESULT ═══ 2.23.2.149. MWindow::winInitDlg() ═══ winInitDlg(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_INITDLG message. MRESULT ═══ 2.23.2.150. MWindow::winInitMenu() ═══ winInitMenu(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_INITMENU message. MRESULT ═══ 2.23.2.151. MWindow::winJournalNotify() ═══ winJournalNotify(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND ULONG MPARAM MPARAM,int & By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_JOURNALNOTIFY message. MRESULT ═══ 2.23.2.152. MWindow::winMatchMnemonic() ═══ winMatchMnemonic(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_MATCHMNEMONIC message. MRESULT ═══ 2.23.2.153. MWindow::winMeasureItem() ═══ winMeasureItem(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_MEASUREITEM message. MRESULT ═══ 2.23.2.154. MWindow::winMenuEnd() ═══ winMenuEnd(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_MENUEND message. MRESULT ═══ 2.23.2.155. MWindow::winMenuSelect() ═══ winMenuSelect(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_MENUSELECT message. MRESULT ═══ 2.23.2.156. MWindow::winMinMaxFrame() ═══ winMinMaxFrame(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_MINMAXFRAME message. MRESULT ═══ 2.23.2.157. MWindow::winMouseLasr() ═══ winMouseLasr(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler. MRESULT ═══ 2.23.2.158. MWindow::winMouseLast() ═══ winMouseLast(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler. MRESULT ═══ 2.23.2.159. MWindow::winMouseMove() ═══ winMouseMove(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_MOUSEMOVE message. MRESULT ═══ 2.23.2.160. MWindow::winMouseTranslateFirst() ═══ winMouseTranslateFirst(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler. MRESULT ═══ 2.23.2.161. MWindow::winMouseTranslateLast() ═══ winMouseTranslateLast(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler. MRESULT ═══ 2.23.2.162. MWindow::winMove() ═══ winMove(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_MOVE message. MRESULT ═══ 2.23.2.163. MWindow::winNextMenu() ═══ winNextMenu(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_NEXTMENU message. MRESULT ═══ 2.23.2.164. MWindow::winNull() ═══ winNull(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_NULL message. MRESULT ═══ 2.23.2.165. MWindow::winOpen() ═══ winOpen(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_OPEN message. MRESULT ═══ 2.23.2.166. MWindow::winPActivate() ═══ winPActivate(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_PACTIVATE message. MRESULT ═══ 2.23.2.167. MWindow::winPControl() ═══ winPControl(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_PCONTROL message. MRESULT ═══ 2.23.2.168. MWindow::winPPaint() ═══ winPPaint(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_PPAINT message. MRESULT ═══ 2.23.2.169. MWindow::winPSetFocus() ═══ winPSetFocus(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_PSETFOCUS message. MRESULT ═══ 2.23.2.170. MWindow::winPSize() ═══ winPSize(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_PSIZE message. MRESULT ═══ 2.23.2.171. MWindow::winPSysColorChange() ═══ winPSysColorChange(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_PSYSCOLORCHANGE message. MRESULT ═══ 2.23.2.172. MWindow::winPaint() ═══ winPaint(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_PAINT message. MRESULT ═══ 2.23.2.173. MWindow::winPaintClipboard() ═══ winPaintClipboard(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_PAINTCLIPBOARD message. MRESULT ═══ 2.23.2.174. MWindow::winPing() ═══ winPing(HWND, MPARAM, MPARAM) [virtual] HWND Window handle MPARAM Parameter 1 MPARAM Parameter 2 By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the MEM_PING message. MRESULT ═══ 2.23.2.175. MWindow::winPositionChanged() ═══ winPositionChanged(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_WINDOWPOSCHANGED message. MRESULT ═══ 2.23.2.176. MWindow::winPresParamChanged() ═══ winPresParamChanged(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_PRESPARAMCHANGED message. MRESULT ═══ 2.23.2.177. MWindow::winQueryAccelTable() ═══ winQueryAccelTable(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_QUERYACCELTABLE message. MRESULT ═══ 2.23.2.178. MWindow::winQueryConvertPos() ═══ winQueryConvertPos(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_QUERYCONVERTPOS message. MRESULT ═══ 2.23.2.179. MWindow::winQueryDlgCode() ═══ winQueryDlgCode(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_QUERYDLGCODE message. MRESULT ═══ 2.23.2.180. MWindow::winQueryFocusChain() ═══ winQueryFocusChain(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_QUERYFOCUSCHAIN message. MRESULT ═══ 2.23.2.181. MWindow::winQueryFocusPos() ═══ winQueryFocusPos(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler. MRESULT ═══ 2.23.2.182. MWindow::winQueryFrameCount() ═══ winQueryFrameCount(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_QUERYFRAMECTLCOUNT message. MRESULT ═══ 2.23.2.183. MWindow::winQueryFrameInfo() ═══ winQueryFrameInfo(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_QUERYFRAMEINFO message. MRESULT ═══ 2.23.2.184. MWindow::winQueryIcon() ═══ winQueryIcon(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_QUERYICON message. MRESULT ═══ 2.23.2.185. MWindow::winQueryTrackInfo() ═══ winQueryTrackInfo(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_QUERYTRACKINFO message. MRESULT ═══ 2.23.2.186. MWindow::winQueryWindowParams() ═══ winQueryWindowParams(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_QUERYWINDOWPARAMS message. MRESULT ═══ 2.23.2.187. MWindow::winQuit() ═══ winQuit(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_QUIT message. MRESULT ═══ 2.23.2.188. MWindow::winRenderAllFmts() ═══ winRenderAllFmts(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_RENDERALLFMTS message. MRESULT ═══ 2.23.2.189. MWindow::winRenderFmt() ═══ winRenderFmt(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_RENDERFMT message. MRESULT ═══ 2.23.2.190. MWindow::winSaveApplication() ═══ winSaveApplication(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SAVEAPPLICATION message. MRESULT ═══ 2.23.2.191. MWindow::winSem1() ═══ winSem1(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SEM1 message. MRESULT ═══ 2.23.2.192. MWindow::winSem2() ═══ winSem2(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SEM2 message. MRESULT ═══ 2.23.2.193. MWindow::winSem3() ═══ winSem3(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SEM3 message. MRESULT ═══ 2.23.2.194. MWindow::winSem4() ═══ winSem4(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SEM4 message. MRESULT ═══ 2.23.2.195. MWindow::winSetAccelTable() ═══ winSetAccelTable(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SETACCELTABLE message. MRESULT ═══ 2.23.2.196. MWindow::winSetBorderSize() ═══ winSetBorderSize(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SETBORDERSIZE message. MRESULT ═══ 2.23.2.197. MWindow::winSetFocus() ═══ winSetFocus(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SETFOCUS message. MRESULT ═══ 2.23.2.198. MWindow::winSetIcon() ═══ winSetIcon(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SETICON message. MRESULT ═══ 2.23.2.199. MWindow::winSetSelection() ═══ winSetSelection(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SETSELECTION message. MRESULT ═══ 2.23.2.200. MWindow::winSetWindowParams() ═══ winSetWindowParams(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SETWINDOWPARAMS message. MRESULT ═══ 2.23.2.201. MWindow::winShow() ═══ winShow(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SHOW message. MRESULT ═══ 2.23.2.202. MWindow::winSingleSelect() ═══ winSingleSelect(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SINGLESELECT message. MRESULT ═══ 2.23.2.203. MWindow::winSize() ═══ winSize(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SIZE message. MRESULT ═══ 2.23.2.204. MWindow::winSizeClipboard() ═══ winSizeClipboard(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SIZECLIPBOARD message. MRESULT ═══ 2.23.2.205. MWindow::winSubstituteString() ═══ winSubstituteString(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SUBSTITUTESTRING message. MRESULT ═══ 2.23.2.206. MWindow::winSysColorChange() ═══ winSysColorChange(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SYSCOLORCHANGE message. MRESULT ═══ 2.23.2.207. MWindow::winSysCommand() ═══ winSysCommand(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SYSCOMMAND message. MRESULT ═══ 2.23.2.208. MWindow::winSysValueChanged() ═══ winSysValueChanged(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_SYSVALUECHANGED message. MRESULT ═══ 2.23.2.209. MWindow::winTextEdit() ═══ winTextEdit(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_TEXTEDIT message. MRESULT ═══ 2.23.2.210. MWindow::winTimer() ═══ winTimer(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_TIMER message. MRESULT ═══ 2.23.2.211. MWindow::winTrackFrame() ═══ winTrackFrame(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_TRACKFRAME message. MRESULT ═══ 2.23.2.212. MWindow::winTranslateAccel() ═══ winTranslateAccel(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM MParam 1 MPARAM MParam 2 int & Was this handled? 1 for yes, 0 for no. By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_TRANSLATEACCEL message. 0 if not handled, 1 if handled. MRESULT ═══ 2.23.2.213. MWindow::winUpdateFrame() ═══ winUpdateFrame(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_UPDATEFRAME message. MRESULT ═══ 2.23.2.214. MWindow::winUpdateSheet() ═══ winUpdateSheet(MChange *) [virtual] MChange * List of cells to update By default, this method returns 0 and does nothing; any class that inherits from MWindow may override this method to trigger an update. MRESULT ═══ 2.23.2.215. MWindow::winVScroll() ═══ winVScroll(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_VSCROLL message. MRESULT ═══ 2.23.2.216. MWindow::winVScrollClipboard() ═══ winVScrollClipboard(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_VSCROLLCLIPBOARD message. MRESULT ═══ 2.23.2.217. MWindow::winVioChar() ═══ winVioChar(HWND, ULONG, MPARAM, MPARAM, int &) [virtual] HWND Window handle ULONG Message MPARAM Parameter 1 MPARAM Parameter 2 int & Was it processed? 1 for yes, 0 for no. (If no, then it will be passed to default window handler.) By default, this method returns 0 and does nothing; the parameters are passed through to the default window handler, and trigger the behavior associated with the WM_VIOCHAR message. MRESULT ═══ 2.24. Other Mesa-specific classes ═══  MChange  MFrame  MPrintInfo  MDraw  MDDEClientItem  MPassword  MPosition  MImage  MGraphElement These classes are not directly available through Mesa DOK; however, methods defined on several DOK classes either return them as values or accept them as parameters. They are therefore described here briefly, to give you an idea of what they reprsent and why they are used where they are. ═══ 2.24.1. MChange ═══ An MChange instance represents a list of cells. It is primarily used to indicate which cells have been changed during a recalculation, reformating, or resizing operation. Each MChange instance keeps track of the addresses of the cells it represents, and also notes how severe the changes are, so other classes can determine how best to handle the change. Note that unlike an MRange instance (see MRange), an MChange instance actually maintains a separate MAddress for each individual cell it represents. ═══ 2.24.2. MFrame ═══ An MFrame instance represents a graphic object. There are many different types of MFrame within Mesa, falling into three major categories: shapes (such as rectangles and arrows), graphs (such as bar graphs and column graphs), and imported graphics files (such as BMP or MET files). While each type stores different kinds of information (see "Contents of a frame"), they are basically treated identically: each model maintains a list of frames it contains, and each sheet view determines which of those frames is currently being displayed within it. An MFrame instance can be queried and altered via an MFrameXfer instance. For more information, see "MFrameXfer". ═══ 2.24.3. MGraphElement ═══ An MGraphElement instance represents a displayed object which is contained within a graph frame. For example, titles, subtitles, and legends are all implemented as MGraphElement instances. Each MGraphElement instance keeps track of color, font, border color and thickness. It can also maintain additional attributes related to particular kinds of elements, although it does not do so within Mesa DOK. ═══ 2.24.4. MPrintInfo ═══ An MPrintInfo instance represents a specific print job. It includes a pointer to a print job header (see MPrintHead) and a variety of other printing-related information (the time and date, how many pages, etc.). ═══ 2.24.5. MDraw ═══ MDraw implements the drawing primitives within Mesa. It is designed to provide a layer of abstraction between drawing commands within the application and the actual drawing commands executed by the operating system or other host environment. ═══ 2.24.6. MDDEClientItem ═══ An MDDEClientItem instance represents a DDE link to another DDE-enabled application. It keeps track of the program, the file, the item, the link name, and other information related to a DDE link. ═══ 2.24.7. MPassword ═══ An MPassword instance represents a file password stored with a given model. If a password is stored with a model and is being used, then the user will be prompted for that password whenever an attempt is made to open the file. ═══ 2.24.8. MPosition ═══ An MPosition instance represents the positions of one or more windows, generally associated with a single model. It keeps track of the number of windows and a rectangle for each one. Within the Mesa application, it keeps track of the application window's size and state, as well. ═══ 2.24.9. MImage ═══ MImage is an abstract base class for image processing, and is used to handle the display of bitmaps and metafiles within a sheet view.