the ilog flash editor: a software tool for creating...

225
1 The iLOG Flash Editor: A Software Tool for Creating Interactive Learning Activities in Flash A Thesis for Completion of the Requirements for Graduation from the UNL Honors Program By: Jesse Hostetler Advisors: Dr. Leen-Kiat Soh & Dr. Ashok Samal April 26, 2009

Upload: dotuyen

Post on 19-Mar-2018

215 views

Category:

Documents


1 download

TRANSCRIPT

1

The iLOG Flash Editor:

A Software Tool for Creating Interactive

Learning Activities in Flash

A Thesis for Completion of the Requirements

for Graduation from the UNL Honors Program

By: Jesse Hostetler

Advisors: Dr. Leen-Kiat Soh & Dr. Ashok Samal

April 26, 2009

2

3

ABSTRACT

Learning objects – self-contained electronic learning software – can improve student

success by supplementing traditional classroom instruction, enabling students to

experience learning content at their own pace, and easing the workload on their

instructors. However, creating interactive, graded, visually appealing learning objects is

time-consuming and often requires extensive programming. The iLOG Flash Editor (IFE)

is a tool designed to increase the accessibility of learning objects to educators by allowing

them to create graded, interactive learning objects without programming. By exploiting

the Question and Test Interoperability (QTI) standard for reusable assessment question

specification, the IFE system separates the content of graded assessments from its

presentation, allowing the same content easily to be reused in different visual forms.

Although many software tools allow users to create graded learning activities, the iLOG

Flash Editor is unique in integrating the reusability of a widely-recognized content

specification standard with the flexibility to realize the content specification in different

visual formats. This thesis describes the design of the iLOG Flash Editor and the

experience gained from deploying a preliminary version for use in an intermediate

computer science class. The results of this early usage test demonstrate that, while

additional functionality is needed, the iLOG Flash Editor can effectively aid course

designers in creating effective electronic learning content. Directions for future

development are also discussed.

4

5

Table of Contents

Abstract ................................................................................................................................2

1. Introduction ....................................................................................................................7

1.1. Problem Description ...............................................................................................7

1.2. Motivation ...............................................................................................................7

1.3. Solution Approach ..................................................................................................8

1.4. Contribution ............................................................................................................8

1.5. Overview of Thesis .................................................................................................8

2. Related Work ................................................................................................................9

2.1. Lectora ....................................................................................................................9

2.2. Content Clips ..........................................................................................................9

3. System Design .............................................................................................................10

3.1. Selection of Implementation Technologies ..........................................................10

3.1.1. Application Programming Language .........................................................10

3.1.2. Flash as a Learning Object Platform ..........................................................11

3.1.3. QTI Assessment Specification Format ......................................................12

3.1.4. Third-party Software Components ............................................................12

3.2. IFE System Overview ...........................................................................................14

3.3. C++ Components and Operations .........................................................................14

3.3.1. Graphical User Interface Design ................................................................14

3.3.2. Document/View Architecture ....................................................................15

3.3.3. Flash ↔ C++ Interface ..............................................................................15

3.3.4. Project File Format ....................................................................................16

3.3.5. QTI Implementation...................................................................................16

3.3.6. Interaction Wizard .....................................................................................17

3.3.7. MXML Source File Generation .................................................................17

3.3.8. Flex Compiler Invocation ..........................................................................18

3.4. Flash Components ................................................................................................18

3.4.1. Flash Component Manager ........................................................................18

3.4.2. Flash Slide Chooser ...................................................................................19

3.5. Flash Runtime Library ..........................................................................................19

3.5.1. Grading Facilities .......................................................................................20

3.5.2. Built-in Runtime Object and Functions .....................................................20

3.5.3. Dynamic Interface System .........................................................................20

4. Experiences with Deployment of Alpha Version ........................................................21

4.1. Problems with Initial Deployment Version ..........................................................21

4.2. User Survey Results ..............................................................................................22

5. Future Work .................................................................................................................23

5.1. Design Enhancements and Additional Features ...................................................23

5.1.1. Support for Additional Interaction Types ..................................................23

5.1.2. Integration with iLOG Usage Data Tracking Framework .........................24

5.1.3. Support for Additional Event Handlers .....................................................24

5.1.4. Animations .................................................................................................24

5.2. Research ...............................................................................................................24

6

5.2.1. Framework for Mapping Assessment Presentation to Assessment Grading

Rules ..............................................................................................................24

6. Conclusion ..................................................................................................................25

Acknowledgements ............................................................................................................26

References ..........................................................................................................................27

A. Appendix: IFE Project File Documentation ...............................................................29

A.1. IFE Project Manifest Format ...............................................................................29

A.2. XML Runtime System Initialization Format .......................................................31

A.3. Resource Directory Structure ..............................................................................33

B. Appendix: C++ Documentation ...................................................................................35

C. Appendix: Flash Editor Components Documentation ...............................................221

D. Appendix: Flash Runtime Library Documentation....................................................223

E. Appendix: IFE Usability Survey ................................................................................225

7

1. Introduction

1.1 Problem Description

A learning object, in the context of this thesis, is a self-contained electronic

learning activity designed to supplement or replace traditional classroom instruction.

While a learning object may take the form of anything from a simple hypertext document

to a video, a podcast, or a fully-immersive 3-D environment, we will concern ourselves

primarily with interactive learning objects experienced over the Internet which feature a

graded assessment component. Creating such learning objects typically requires extensive

programming, and most educators do not have the necessary time or programming skills.

Thus, educators who wish to incorporate interactive learning objects into their courses

must either pay a third-party developer to create them or use existing learning objects

which may not fit neatly into their lesson plans. As a result, use of learning objects as a

significant portion of a course of instruction is uncommon. A quicker, easier way of

creating interactive learning objects would increase adoption, making their benefits more

widely available.

1.2 Motivation

Research investigating the instructional use of learning objects has found them to

be an effective means of improving student performance [5, 6, 7, 8]. Learning objects

distributed over the Internet can improve student success by supplementing traditional

classroom instruction and enabling students to experience learning content at their own

pace and at a place and time of their choosing. Learning objects featuring graded

assessments can also ease the workload on instructors by automating some of their

grading tasks and helping them to identify students that are having difficulties.

Students tend to respond more positively to interactive learning objects [6, 7, 9].

We will define interactivity as the property of a learning object of 1) requiring actions

from the learning and 2) responding to those actions. Alternatively, we could say that

interactivity implies two-way communication between the learner and the learning object.

A learning object comprised of a simple text document is not interactive, since the

student merely experiences the content without taking any significant actions. However,

an assessment question that does not provide feedback is also not interactive, since the

learning object does not respond to the student‟s actions. In order to provide interactivity,

the learning object must parse student inputs, determine the appropriate feedback

response, and present it to the student. In the context of graded assessment activities, this

means checking the correctness of the student‟s answer, determining why the student

might have given a particular incorrect answer, and giving immediate feedback to the

student on his or her performance. Thus, any tool for the design of interactive learning

objects must support a framework for evaluating student responses.

The use of visual media such as animations in learning objects improves not only

student opinions of the learning object [8, 10] but also student performance on

subsequent assessments [10]. Animations capture the attention of users and provide

concrete illustrations of a concept in ways that are not possible with simple text and

images. Unfortunately, creating animations generally requires either complicated

8

programming or the purchase of an expensive, proprietary software tool. While such tools

may be a good investment for course creators that wish to use many elaborate animations,

they are overkill for the designer who has simpler goals. A tool that provides a

straightforward means of creating simple animations could bring their advantages to a

larger number of learning objects.

1.3 Solution Approach

The iLOG Flash Editor (IFE) is a software tool that allows users to design graded,

interactive Flash-based learning objects using an intuitive graphical interface. By making

it easier for educators without programming knowledge to create interactive learning

objects, the IFE system is a step toward increasing the adoption rate of learning objects as

a supplement to classroom instruction.

The IFE system is designed to:

1. Allow designers to create interactive content with minimal constraints on its form

or semantics.

2. Provide a means to map the interactive content into a standardized assessment

specification framework to facilitate grading and feedback.

3. Enable diverse multimedia content such as sounds and images to be brought

together to enhance the learning experience.

4. Provide a platform for the creation of simple animations.

5. Have no proprietary components or dependencies.

1.4 Contribution

When completed, the IFE system will offer a set of features unavailable in any

other free software system. By providing a complete concept-to-deployment workflow

for interactive learning object design in a single no-cost package, the IFE system brings

learning object authoring within the reach of more educators. The result is the creation of

a larger number of learning objects in a wider variety of subject areas. With more

learning objects available, the chances that they will be used increases. Wider adoption

and deployment of interactive learning objects benefits students by making the

demonstrated benefits of e-learning technology available to a greater number of them. It

benefits educators by providing a larger pool of learning objects to choose from should

they be hesitant to create their own. It also benefits the research community by expanding

the number of real world learning object usage scenarios available to study and by

familiarizing students and teachers with e-learning technology, making them more likely

to participate in e-learning research. Making learning object creation quicker and easier is

an important step in advancing the field of e-learning as a whole.

1.5 Overview of Thesis

This document is divided into five additional chapters. Chapter 2 describes other

software tools that can be used to create web-based learning objects and compares their

9

features to those of the IFE system. Chapter 3 details the design of the IFE system and

discusses alternative design approaches that were considered. In Chapter 4, the results of

a trial software deployment to an intermediate computer science class are summarized.

Chapter 5 describes future work which could improve the usefulness of the IFE system.

Finally, Chapter 6 contains a summary of the work and concluding remarks.

2. Related Work

This chapter describes two existing learning object creation tools, and compares

their design goals and features to those of the IFE system.

2.1 Lectora

Lectora (http://www.trivantis.com) is a software tool for creating learning objects

conforming to the Sharable Content Object Reference Model (SCORM) [3] standard. The

Lectora software was used in the iLOG project (http://cse.unl.edu/agents) to create

learning objects for research purposes. The software provides the ability to integrate

hypertext documents into a longer sequential lesson and to design graded assessment

questions representing several different types of interactions (i.e. multiple choice,

matching, fill-in-the-blank, etc).

Lectora is primarily a content aggregation system, not a content creation system;

its purpose is to package a set of resources according to a content aggregation standard

such as SCORM. While assessment questions can be created within the Lectora system,

only a single basic presentation format for each type of assessment item is supported,

limiting the creativity of the learning object designer. The IFE system differentiates itself

from Lectora by placing a greater emphasis flexible assessment creation. Because it does

not concern itself with the intricacies of content packaging, IFE is free to focus on

producing learning objects with a greater level of interactivity in a greater variety of

formats.

2.2 Content Clips

Content Clips [4] is an NSF-funded project whose purpose is to improve the

usability of so-called “digital libraries,” which are aggregations of multimedia content

accessible over the Web. To this end, the project designers have implemented a web

interface (http://www.contentclips.com) which allows users to create learning objects by

combining multimedia objects such as images and videos that are retrieved from an

online repository. The project‟s authors have also proposed support for graded student

interactions, but this feature had not been implemented at the time of this writing.

The Content Clips system attempts to improve the reusability of learning object

designs by aggregating multimedia objects into “sets” and allowing different sets of

objects to be swapped in and out of the same design. This capability is similar to, yet

subtly different from, one of the design objectives of the IFE system: whereas Content

Clips seeks to use the same design with different content, the IFE system is designed to

allow different designs to be used with the same content. This difference in approach is

vitally important when graded interactions are incorporated into the learning object. In

10

order to grade a student‟s response, the learning object must be able to interpret the states

of the graphical components on the screen (such as whether a button or icon has been

selected) and extract the student‟s response in a format that the computer can understand.

This requires knowledge of the semantic meaning of a multimedia object.

Suppose we have designed a multiple-choice question in which the student must

select the picture of a cat from a set of four pictures of animals. In order to grade this

question, the system must know which picture is the correct answer and what the states of

the components of the interaction will be if the student has chosen that answer (e.g.

which button will be selected). If we now replace the set of images with pictures of cars

and ask the student to choose the red car, our grading rules no longer work. In general, it

is not possible simply to replace one set of stimuli in an assessment item with another set;

in one way or another, the meaning of the stimuli must be known. In our example, this

would mean either that metadata must be embedded in the set of images that indicates

which image is the correct answer (thus tying the image set to a specific interaction

context) or that a new interaction must be created (the situation we were trying to prevent

by plugging new content into the existing interaction).

Thus, the goal of freely swapping content in and out of a design framework is

ultimately restrictive: either a structure must be imposed on the sets of content or the

interaction in which they take part cannot be graded. In contrast, the IFE approach to

content reusability keeps the content (and its semantics) static, while varying the way in

which the learner interacts with the content. The mapping between content and grading

semantics is abstracted into an intermediate layer (Chapter 3.5.3). In this way, the IFE

system allows design and content reusability to the maximum degree possible while

preserving the ability to grade student interactions.

3. System Design

3.1 Selection of Implementation Technologies

The design requirements of the IFE system necessitated careful selection of the

technologies used to implement it. This chapter describes the technologies that were

ultimately chosen, alternatives that were rejected, and the rationale for these choices.

3.1.1 Application Programming Language

The choice of programming language used to implement the editor application

dictated much of the development workflow and many future design decisions. Four

primary requirements drove the selection of application programming language:

1. The application should, as much as possible, be platform-independent.

2. The application must be able to interact with the user‟s computer system in order

to save and load project files and import external resources from the file system.

3. The application must be able to invoke the Adobe Flex 3 compiler

programmatically in order to compile the learning object design into a Flash

executable.

11

4. The application must be capable of displaying and editing Flash graphical

components so that the user can see the learning object design exactly as it will

appear to the students interacting with it.

Three languages were initially considered as candidates for the application programming

language. The most promising early option was to implement the entire application in

Flash1 and to run it using the Adobe AIR system (http://www.adobe.com/products/air/),

which allows Flash applications to be run locally on a user‟s computer like traditional

desktop applications. This would eliminate the need to host a Flash Player plugin within

the application in order to display the Flash components. However, due to security

restrictions, it is not possible to invoke external applications (namely, the Flex 3

compiler) from within an AIR application. Thus, this approach was abandoned.

With AIR being unsuitable, the two remaining options were the two most popular

application programming languages: Java and C++. Java has several advantages over

C++. All of the functionality in the Java standard library, as well as extensions like the

Swing GUI system, is platform-independent. Moreover, development effort is typically

less in Java due to features like automatic memory management and shorter compilation

times. However, because the is no pure-Java implementation of the Flash Player plugin,

embedding a Flash Player in a Java application would require making native system calls

using the Java Native Interface (JNI). This would require sacrificing some of Java‟s

natural platform-neutrality, eroding one of its chief advantages.

The final option, C++, has its own advantages. Using the wxWidgets libraries

(http://www.wxwidgets.org), most of the application, including the graphical user

interface, can be written in a platform-neutral manner. Unlike Java Swing, graphical

interfaces written with wxWidgets look and feel native: when compiled under Microsoft

Windows, the application will look like a typical Windows application, while the same

application, when compiled under Apple OSX, will look like an OSX application. This is

an important consideration when creating an application intended for use by

inexperienced computer users, since deviations from the typical look-and-feel of the

user‟s system may make the interface more confusing. The wxWidgets library also offers

several classes that simplify the task of embedding the Flash Player. On Windows

systems, the wxWidgets ActiveX control wrapper class can be used to encapsulate the

Flash Player plugin. On other systems, the Mozilla web browser can be embedded in the

application and the Flash Player plugin run in the web browser. For these reasons, C++

was chosen as the application programming language.

3.1.2 Flash as a Learning Object Platform

A learning object designed to be distributed over the web must be built on top of a

technology that satisfies several requirements. The technology must be portable, so that,

as much as possible, students may use it on any computer without downloading

additional software components. It must be capable of aggregating multimedia content of

1 “Flash” is not a programming language, but a runtime system. Flash applications are programmed in

Actionscript, a variant of Javascript, and Flex, a declarative XML-based language used to describe

component layout. For simplicity, the term “Flash” is used to represent both Flash applications and the

languages used to implement them.

12

a variety of types and formats, so that a learning object can incorporate existing

resources. It must support interactive instructional paradigms, in which student actions

trigger the presentation of additional content or feedback.

Adobe Flash technology satisfies all of these requirements, providing an ideal

platform on which to build interactive learning objects. According to market research

commissioned by Adobe (http://www.adobe.com/products/player_census/flashplayer/)

the Flash Player plugin is installed on 99% of “Internet-enabled desktops in mature

markets”, and many browsers provide facilities to automatically download and install the

plugin if necessary. Images, sounds, and videos in a variety of common formats can all be

embedded easily in a Flash application. Flash also provides extensive native facilities for

animation and drag-and-drop interactions. Finally, the XML-based Flex language greatly

simplifies the task of generating learning object source code programmatically. Because

of the declarative, hierarchical structure of a Flex application, the properties of

components and the relationships between them are part of the structure of the document.

When compared to a language such as Java, Flex code for a given learning object design

is far easier to generate. These considerations, as well as prior programming

experience, led to the choice of Flash as the learning object implementation language.

3.1.3 QTI Assessment Specification Format

Much of the usefulness of electronic learning objects for educators comes from

the ability to include graded assessments within them. When an activity is graded,

students have greater incentive to pay close attention to the material, and educators have

a means of identifying and correcting learning deficiencies. Thus, a primary design

requirement of the IFE system was that it should be capable of creating graded

assessments. Naturally, it is then necessary to define a means of specifying the question

format and the correct answer. The Question and Test Interoperability (QTI) standard [1]

is an open standard designed to address this problem. The QTI content model provides a

means of describing a wide range of different graded assessment items, as well as grading

rules that can be combined to create an algorithm for evaluating the correctness of a

student response. Because QTI is an open standard, assessments designed with IFE could

be exported in QTI format and used in other compatible learning object systems, and

assessments designed using other systems could be imported into IFE. The QTI standard

was therefore selected as the assessment specification format for use in the IFE system.

3.1.4 Third-Party Software Components

The IFE system uses several third-party software libraries and applications. In

keeping with the goal of using no proprietary components, all of the third-party software

described here is freely redistributable, and most is open-source.

3.1.4.1 wxWidgets C++ Library

The wxWidgets library (http://www.wxwidgets.org) is a cross-platform graphical

user interface (GUI) library and application development framework. In addition

to the typical GUI functionality such as windows, menus, and an event system,

13

the wxWidgets library provides classes for XML document manipulation, ZIP

archive manipulation, file system interaction, and interprocess communication.

The wxWidgets GUI system is unique in that all GUI classes are simply wrappers

around native GUI components, thus providing a platform-native look-and-feel to

the IFE system‟s graphical user interface.

The wxWidgets library is licensed under the “wxWindows Licence,” an open-

source license that is similar to the GNU Lesser General Public License

(http://www.gnu.org/licenses/lgpl.html). The IFE system uses wxWidgets version

2.8.7.

3.1.4.2 Boost C++ Libraries

The Boost C++ libraries (http://www.boost.org) are a set of useful utility libraries

implemented in platform-independent standard C++. The Boost libraries speed

C++ development by providing high-quality implementations of commonly-used

functionality. The IFE system uses Boost for such purposes as smart pointers,

hash tables, discriminated union containers, and template metaprogramming.

The Boost libraries are licensed under the “Boost software license,” which is similar to

the MIT software license (http://www.opensource.org/licenses/mit-license.php). The IFE

system uses Boost version 1.37.

3.1.4.3 Adobe Flex 3 SDK

The Adobe Flex 3 SDK contains the Flex standard libraries, as well as the Flex 3

compiler and debugger and the “asdoc” documentation generator. The IFE system

uses the Adobe Flex 3 compiler to compile the source code generated by the

editor software into a Flash executable. Adobe offers a version of the Flex 3 SDK

that is entirely open-source, which is the version used by the IFE system. The

license of the SDK allows it to be distributed along with the IFE software,

eliminating the need for users to download the SDK separately.

The open source version of the Flex 3 SDK is licensed under the “Mozilla Public

License” (http://www.mozilla.org/MPL). The IFE system uses Flex 3 SDK

version 3.0.0.447.

3.1.4.4 D.eval API

The D.eval API (http://www.riaone.com/products/deval/index.html) is a Flash

library that allows Actionscript code to be interpreted and executed at runtime. In

the Actionscript 2 language, this functionality was provided by a standard library

function called eval(). However, this function was removed in Actionscript 3,

the version of Actionscript used by the IFE system. Thus, the D.eval API was

incorporated to fill this need.

14

Although the D.eval API is freeware, it is not open source. However, the terms of

its license permit static linking of the library into a Flash executable, as takes

place in the IFE software. The IFE system uses D.eval version 1.1.

3.2 IFE System Overview

The IFE system consists of three primary components: the editor application

itself, implemented in C++; the Flash component manager, implemented in Flash; and the

Flash runtime library, which supports learning objects in runtime usage. The architecture

of the IFE system is illustrated in Figure 1. Detailed descriptions of individual

components can be found in the following chapters.

Figure 1 Overview of the IFE system.

3.3 C++ Components

Most major editor features are implemented in C++, with some subsystems

implemented in Flash. This chapter details the design of the C++ portion of the IFE

system and the major functions it carries out.

3.3.1 Graphical User Interface Design

The main graphical user interface (GUI) was designed to look familiar to users

who are experienced with other common desktop applications, as shown in Figure 2. A

main menu bar across the top provides drop-down menus from which various application

features can be accessed. The main viewing area is organized using a “pane” structure:

the learning object design is displayed in the center, and supplementary information is

displayed in panes surrounding the central area. This GUI format allows most user

interactions to be completed without the need for pop-up dialogs, which distract the

user‟s attention from the main work area.

15

Figure 2 The IFE graphical user interface.

3.3.2 Document/View Architecture

The iLOG Flash Editor uses the wxWidgets library‟s document/view architecture

to improve the modularity of the application. The document/view paradigm separates the

data on which the program operates (the “document”) from the presentation of the data to

the user (the “view”). Although there is presently only one document and one view, the

separation of concerns afforded by this architecture will make it easier to add

functionality in the future. For example, it might be useful to add a “preview” mode, in

which the user can see how the project will look to a student who is interacting with it.

The preview mode could be implemented as an additional “view” into the same data,

facilitating easy transitioning between “edit” and “preview” mode.

3.3.3 Flash ↔ C++ Interface

Because the implementation of the embedded Flash Player will vary in versions of

the IFE software written for different platforms, the interface between the C++ portion of

the application and the Flash portion was abstracted into an opaque interface object. The

interface object provides a stable set of functions through which the C++ application can

manipulate Flash graphical objects.

The Flash ↔ C++ interface is built around the Flash ExternalInterface API. Using

this API, the Flash application can expose internal functions to the C++ application,

which can then call them synchronously, passing arguments and receiving return values

in a simple XML format.

The Flash interface is similar in operation to many operating system interfaces.

All Flash graphical components are managed by the Flash Component Manager (Chapter

3.4.1), implemented in Flash. To create a new component, the C++ application sends a

16

request to the Flash interface object and receives a ComponentHandle object if

creation is successful. The handle object uniquely identifies the component in subsequent

interactions, such as getting and setting properties or destroying the component (Figure

3).

Figure 3 A typical series of interactions with a Flash component using the Flash ↔ C++

interface

3.3.4 Project File Format

The learning object design produced by the iLOG Flash Editor is called a project, and

is saved in IFE project files, which have the file extension “.ife”. An IFE project file is

simply a ZIP archive that contains the individual files used in the project, such as source

code and images. For a project called “my_project”, the project file would have the

following structure:

my_project.ife/ – The root ZIP archive

o ife_manifest.xml – The project manifest (Appendix A.1)

o my_project.mxml – The project source code (Appendix A.2)

o resources/ – The project resources directory (Appendix A.3)

The ZIP archive format makes it possible to package files of diverse types together into a

single project file. The wxWidgets library contains functions for manipulating ZIP

archives in a platform-neutral manner, making it easy to write the code necessary to load

and save IFE projects. Furthermore, the project file can be un-packed and its contents

examined without any special tools, making problems with the project file easy to debug.

3.3.5 QTI Implementation

The IFE system uses a partial implementation of the IMS Question and Test

Interoperability (QTI) standard [1] to represent assessment content and grading rules. The

QTI content model defines an inheritance hierarchy grouping elements with common

functionality together as well as an XML binding for describing a QTI-conformant

assessment design in XML. The IFE QTI implementation reproduces a subset of the QTI

class hierarchy using C++ class inheritance mechanisms (Appendix B).

17

In addition to describing a QTI assessment design, the IFE QTI implementation

supports two key operations on the assessment specification: serialization and

instantiation. The serialization operation begins with an assessment design represented

by a group of QTI objects and produces an XML document describing the assessment in

the format specified by the QTI XML binding. Serialization proceeds recursively from

the root node of the assessment specification to the leaf nodes. Each element serializes

itself by walking up the class inheritance hierarchy and serializing its own data members

and those of its parent classes, and then recursively serializes its children. Serialization

occurs when the project source code file is generated, either when the project is saved or

just before compilation.

The instantiation operation is the inverse of the serialization operation: beginning

with an XML assessment specification, the instantiation operation creates a set of QTI

objects that represent the specification. Like serialization, instantiation proceeds

recursively from the root node to the leaf nodes, with each node first instantiating itself

and then each of its children. Instantiation occurs when a project is loaded from an IFE

project file.

3.3.6 Interaction Wizard

Graded assessment items in the QTI standard take the form of one of several types

of interactions. The IFE system currently supports two types of interactions from the QTI

standard: the “choice” interaction, which represents the ubiquitous multiple-choice

question, and the “match” interaction, in which students must associate items from one

group with their matches in another group (Support for additional types is planned; see

Chapter 5.1.1). These interactions are created by way of an interaction wizard, which

guides the user through the creation process step by step. Using the wizard, the user

specifies the prompt for the question, the possible answers, and the correct answer. When

the wizard is completed, the graphical components necessary to represent the question are

created and the user arranges them as desired. At this time, QTI objects representing the

interaction and its grading rules are also instantiated. When the project is published, the

interaction specification will be embedded in the Flash executable (Appendix A.2).

3.3.7 MXML Source File Generation

In order to compile the IFE project into a Flash executable, an MXML source file

representing the project must be generated. The source file consists of three primary

parts: 1) the layout and properties of the individual graphical components encoded in the

Flex 3 language, 2) a script written in Actionscript that launches the IFE runtime system

at startup, and 3) an XML document containing the information necessary to initialize the

runtime system.

Source code generation begins with a “template” file, which is a compilable

MXML file containing the parts of the source code (namely, the startup scripting and a

skeleton of the physical layout) that are static across all IFE projects. The remaining

elements of the source file are inserted into a copy of this template. The majority of the

Flex 3 code describing the physical appearance and layout of the graphical components is

generated by the Flash component manager (Chapter 3.4.1). The initialization

18

information consumed by the runtime system is embedded as an XML document inside

the source file. This information is generated on the C++ side from the QTI assessment

classes and from additional properties associated with specific Flash graphical

components. The format of this data is described in Appendix A.2.

3.3.8 Flex Compiler Invocation

After the MXML source file has been generated, it must be compiled into a Flash

executable using the Adobe Flex 3 compiler (“mxmlc”). The compiler program is

invoked using the inter-process communication API of the wxWidgets library. While

compilation proceeds, the main IFE application blocks and displays a progress bar. When

the compiler process terminates, the IFE application queries the process return code to

determine if compilation was successful.

3.4 Flash Components

The main C++ application hosts two subsystems implemented in Flash: the

component manager and the slide chooser. Since these subsystems are responsible for

displaying Flash graphical components on the screen, they must be implemented in Flash

so that the components appear in the editor exactly as they will appear in the finished

learning object. Thus, the Flash subsystems provide the “what you see is what you get”

behavior of the editor.

3.4.1 Flash Component Manager

The Flash component manager is responsible for creating and managing the Flash

graphical components displayed in the editor. When the C++ application requests

creation of a Flash component, the component manager creates an instance of the

requested component type and encapsulates it within an EditableComponent object

(Appendix C), which provides an interface for manipulating the component in the context

of the editor. After creating the component, the component manager assigns a globally

unique identifier to the component and returns the identifier to the C++ application,

which wraps the identifier in an opaque handle object (Chapter 3.3.3). Internally, the

component manager maintains a mapping between component identifiers and the actual

component instance. When the C++ application requests an operation on a component

handle (such as getting or setting a property), the component manager retrieves the

component from its internal map and applies the requested operation.

The component manager also facilitates certain cosmetic tasks such as drawing

“handles” around a component when it is selected and changing the mouse cursor as

appropriate to indicate that a “move” or “resize” operation is possible. The component

manager coordinates with each EditableComponent instance to keep track of which

components are selected and what operations are possible on them (Figure 4).

19

Figure 4 Coordination between the ComponentManager and an

EditableComponent object in response to a mouse click event.

3.4.2 Flash Slide Chooser

An IFE project is organized as a series of “slides” that are displayed to the user

one at a time. Naturally, there must be a way to navigate between different slides within

the project. This functionality is provided by the slide chooser control, which is

implemented in Flash. To make it easier for the user to identify the slide he or she wishes

to select, the slide chooser displays the slides as a list of thumbnail images showing the

current contents of each slide. In order to obtain these images, the component manager

periodically renders each slide to a bitmap, compresses the bitmap to a thumbnail-sized

image in PNG format, and sends the compressed image to the slide chooser control. By

implementing the slide chooser in Flash, the application can exploit the Flash

LocalConnection API, which allows the image to be sent directly from the component

manager to the slide chooser without serializing it to XML, which would be costly due to

the size of the image files.

3.5 Flash Runtime Library

Once the learning object has been compiled to a Flash executable and deployed to

students, it requires runtime support that is not available from the Flash standard library.

The IFE Flash Runtime Library provides facilities for grading student interactions and

implements event handlers for runtime events to which the learning object must respond.

At learning object startup, the runtime library parses the embedded XML initialization

information (Appendix A.2) to set up the environment necessary to support the learning

object.

20

3.5.1 Grading Facilities

The most important function of the runtime library is to provide automatic

grading of student assessments. Descriptions of each assessment item in the learning

object are encoded in the QTI XML format [1] and embedded in the project‟s MXML

source code by the editor application before the project is compiled. The runtime library

includes an implementation of a subset of the QTI grading functionality (Appendix D)

which is initialized from the embedded XML data when the Flash executable is started.

Additional features of the runtime library (Chapters 3.5.2 and 3.5.3) allow the student‟s

response to be extracted from the state of the graphical components of the learning object

and checked for correctness using the QTI grading rules.

3.5.2 Built-in Runtime Objects and Functions

The runtime library supports a basic framework of objects and functions that

support runtime functionality and which can be referenced from within functions in an

object‟s dynamic interface (Chapter 3.4.3). These include functions for navigating

between slides in the learning object, for retrieving graphical components by their IDs,

for subscribing to and dispatching events, and other functionality. Complete

documentation of these objects and functions can be found in Appendix D.

3.5.3 Dynamic Interface System

While the QTI specification describes an extensive set of grading rules that can

describe almost any assessment grading scheme, there must be a way to extract a

representation of the student‟s response that is compatible with these grading rules from

the states of the graphical components in the learning object. For example, a multiple-

choice interaction might be represented graphically as a series of radio buttons, and the

application must be able to determine which answer was chosen by the student based on

which radio button is selected. This capability is provided by the runtime library‟s

dynamic interface system. The dynamic interface system allows the functionality of

certain classes in the runtime system to be extended by executing arbitrary Actionscript

code at runtime. When the learning object is started, the runtime library uses the

Actionscript dynamic class system to create a dynamic interface object for each QTI

assessment item. The dynamic interface object contains a named method corresponding

to each of the functions defined in the assessment item‟s dynamic interface. Each such

method has an associated script. When a function is called on the dynamic interface

object, the associated script is executed using the “D.eval” API

(http://www.riaone.com/products/deval/index.html).

To support grading of assessment items, the editor uses the dynamic interface

system to associate a query function named GetResponse with every QTI assessment

item. The specification of the GetResponse function contains a script that queries the

state of the Flash graphical components that represent the assessment item and produces a

description of the student‟s response in a format that the QTI grading rules can

understand. When an assessment item is ready to be graded, the GetResponse method

21

is called on the assessment item‟s dynamic interface object, and the result is fed into the

grading rules specified in the QTI assessment specification.

The flexibility of the dynamic interface system will allow future versions of the

IFE system to extend assessment items with additional functionality. For example, it

would be possible to define a new class of dynamic functions which serve as event

handlers. An event handler could trigger a change in the learning object user interface

whenever the student submits a response, or could detect an incorrect answer and redirect

the student to an additional example of the topic instead of allowing him or her to

proceed normally.

4. Experiences with Deployment of Alpha Version

An early version (v0.4) of the iLOG Flash Editor was deployed to students in an

intermediate computer science course (CSE 235 – Introduction to Discrete Mathematics)

in spring 2009 to assess the usability of the software. As part of a course assignment, the

students were required to use the IFE software to create learning objects covering topics

from discrete mathematics which they were currently studying. In addition, the students

were asked to complete a survey regarding their experiences with the software. The text

of the survey can be found in Appendix F.

4.1 Problems with Initial Deployment Version

Soon after deployment of the IFE software, many students reported problems with

the software crashing when they attempted to compile their projects. By examining the

project files of a few students who experienced the problem, it was determined that a

signed integer overflow in the component color editing system was the culprit. The Flash

ExternalInterface API, which is used to set and retrieve the properties of the Flash

graphical components, does not distinguish between signed and unsigned integers. Thus,

all integer property values were initially represented with signed integers on the C++ side

of the application.

Unfortunately, Flash uses 32-bit colors, with one byte each for the alpha channel,

red, green, and blue components, with alpha being in the high-order byte. Thus, colors

with an alpha value greater than 127 wrapped around to negative values when stored in a

signed integer. Although setting the color of a component to a negative value

programmatically in Actionscript produced correct results, specifying a negative value

for a color property in the MXML source file caused a compilation error when the project

was published. As a result, when students attempted to compile projects in which the

color property of one or more components had been changed to a color with an alpha

value of 128 or greater, the compiler terminated with an error code and an exception was

raised. Compounding the problem, due to a typographical error, the exception handler did

not catch and log this exception, producing an “unknown exception” condition which

crashed the program.

The problem was easily corrected and a patch designated version 0.4.1 was

released which repaired the executables already deployed to the students. Unfortunately,

any project files created before the patch was applied still exhibited the problem if the

troublesome colors had been used. So, another software application was created that

22

could repair the damaged project files. Unfortunately, by the time this work was

completed, the assignment deadline was approaching, and many students, in order to

complete their assignments, seemingly chose to create simpler projects which did not

exercise many of the features of the editor.

4.2 User Survey Results

A total of 13 students completed the surveys, either in paper form or online

through the university‟s computer system. However, due to an error in setting up the

online surveys, only the completion status of the online surveys was recorded while the

actual results were not. Thus, the results in the following table (Table 1) are based on

only the seven paper surveys that were received:

Table 1 Summary of survey results. Ratings were on a scale from 1 to 5, with higher

numbers indicating more-favorable opinions (responses of “N/A” excluded).

Question Average Std. Dev. N

Interface:

Easily accessible 3.86 0.90 7

Friendliness 2.86 0.90 7

Logical design 3.14 1.07 7

Level of content 2.14 0.90 7

Layout 3.43 0.79 7

Audience appeal 3.33 0.52 6

Other 3.00 0.00 5

Interface Average 3.11

Functionality:

Easy [sic] of use 2.86 0.90 7

Usefulness 2.71 1.25 7

Effectiveness 2.57 0.98 7

Speed 3.14 1.35 7

Correctness 2.71 1.11 7

Completeness 2.14 1.07 7

Suitability 3.00 0.00 7

Technical elements 2.86 0.38 7

Other 2.80 0.45 5

Functionality Average 2.76

Help Menu:

Answers your questions 1.80 0.84 5

Provides information you need 1.80 0.84 5

Instructive and helpful 1.80 0.84 5

Easy to follow 3.20 1.48 5

Other 2.00 1.15 4

Help Menu Average 2.12

Overall:

All categories: 2.76 1.01

23

Although these results are based on a small number of surveys, it is clear that

there is considerable room for improvement. While the software problems experienced

during the deployment no doubt had some negative effect on the survey results, the

written comments make it clear that some functionality is missing. The especially low

scores in the “help menu” section can be at least partially attributed to the fact that most

program documentation was provided online, and the actual “Help” menu selection in the

program merely provided an “About…” box displaying version and licensing

information. Specific features requested were:

Add a vector graphics palette as used in many similar programs.

Add in-program help files (in addition to existing online manual).

Allow dragging graphical components beyond the bounds of the workspace.

Add keyboard shortcuts (e.g. Ctrl+S to save, etc.)

5. Future Work

This chapter describes directions for future work, including enhancements to the

IFE software itself and possible research into integrating graphical interface designs with

standardized content specification schema.

5.1 Design Enhancements and Additional Features

There are many features that could be added or improved to enhance the usability

of the software. At present, the development has reached at point where most

“fundamental” functionality (i.e. saving and loading, undo/redo, project compilation,

basic component editing) is present in a usable, if rough, state. It is now possible to begin

adding the rich features that will make the IFE system attractive to real-world users. This

chapter describes a series of specific, near-term functionality goals.

5.1.1 Support for Additional Interaction Types

The QTI specification defines 17 different types of student interactions [1], while

the IFE system currently supports only two types (“choice” and “match”). An immediate

design priority will be to add support for as many additional interaction types as possible.

Moreover, it is possible to represent the same type of interaction in multiple ways. For

example, a multiple choice question (modeled by the “choice” interaction) could be

represented as a list of radio buttons representing one answer apiece or as a drop-down

list from which the answer is selected. The modular design of the IFE system has always

been intended to support the presentation of the same content in multiple formats.

Another immediate design goal will be to implement new presentation formats for

existing interactions.

24

5.1.2 Integration with iLOG Usage Data Tracking Framework

The iLOG Project (http://cse.unl.edu/agents), of which the iLOG Flash Editor is a

part, has led to the development of a framework for tracking student usage patterns for

Flash-based interactive learning objects [2]. Data recorded by the iLOG tracking system

can be used to improve the design of learning objects and to gain insight into the way that

students learn from electronic materials. Integrating learning objects created with IFE

with the iLOG tracking system is a simple matter of inserting tracking function calls into

the learning object and placing the learning object within the proven iLOG HTML

“wrapper” when the learning object is deployed. Implementing this functionality is

another readily achievable near-term goal.

5.1.3 Support for Additional Event Handlers

At present, learning objects created with the IFE system respond to only two basic

events: navigation between neighboring slides, and submission of an answer to an

assessment item. A richer event handling framework is vital to the goal of creating highly

interactive electronic learning content. Designers must be able to create learning objects

that respond to basic user interface events such as mouse clicks and keystrokes, but also

to higher-level events such as assessment item completion with a score below or above a

certain threshold, or an attempt to leave a slide without having spent enough time on it to

have understood the content. The range of possible responses to an event could range

from switching to a different slide, to changing the text in a text box, to playing a sound

clip or starting an animation (Chapter 5.1.4). At the same time, the event system must

strike a delicate balance between complexity and versatility. Users who are not computer

experts must be able to create the functionality they desire without being overwhelmed

by overly-complicated options. There must also be intuitive, graphical debugging tools to

help minimize the frustration of finding problems in the event design.

5.1.4 Animations

Truly immersive, fully interactive learning environments require that the learning

object respond to student actions in ways more complex than a simple pop-up box or

sound clip. Namely, the learning object must be animated. Producing high-quality

animations is a complex task even for experienced users, and creating a software system

that supports the creation of animations is even more so. Due to the complexity of this

feature, it is of low priority for the time being.

5.2 Research

5.2.1 Framework for Mapping Assessment Presentation to Assessment Grading

Rules

One of the key obstacles in the design of the IFE system was the development of a

means to map the state of an arbitrary group of graphical components to a description of a

student response that could be parsed and used in grading rules. Although the solution

25

adopted (Chapter 3.5.3) is flexible, it is perhaps too flexible: by using dynamically

compiled code to perform the mapping, the IFE approach is intimately linked to the

implementation language of the learning object (i.e. Flash). A standardized framework

for the specification of relationships between graphical components and the semantics of

their states with respect to assessment responses could make it easier for learning objects

implemented in different languages to use the same assessment specification framework

to describe their content and grading rules. By increasing the adoption of a single

standard for assessment description, more assessment content would be available for

reuse by other learning objects. At the same time, providing a clear abstraction layer

between assessment content and grading and assessment presentation would enable novel

presentation formats to use existing content, thus facilitating innovation in presentation

design.

Because of the similarity of graphical user interface components across a wide

range of languages, certain relationships between graphical components recur in many

interface designs. For example, the “selected” relation could apply to anything that

behaves like a button, such as actual buttons, clickable regions of the screen, and objects

that can be highlighted as a group. A “membership” relation could apply to components

nested inside containers, as occurs in drag-and-drop interactions, but also to the same

“group selection” interaction already described. If a flexible and relatively complete

collection of relations could be described, it could be used as a basis for the mapping

between assessment presentation and grading semantics.

6. Conclusion

This thesis described the iLOG Flash Editor project, including the motivation for

its creation, details of its design and implementation, results of a usage evaluation of an

early software version, and directions of future work. In order to increase adoption of

interactive learning objects as an instructional aid, a software system was designed and

implemented that allows learning objects to be created by users without programming

knowledge using an intuitive graphical interface. The IFE system provides the capability

to create learning objects featuring graded user interactions and incorporating external

multimedia elements, and to deploy those learning objects online in the form of a Flash

application. Evaluation of the software in usage by computer science students showed

that, despite problems with the early version and a limited feature set, the IFE system

allows users to create useful learning objects that would otherwise have required

substantial programming. Future versions of the IFE system will enhance its functionality

by supporting additional types of graded assessments, providing usage data tracking

capabilities, and adding support for advanced interactive features and animations.

26

Acknowledgements

This work was supported by the National Science Foundation under Grant No.

0634642 and by a UCARE grant from the University of Nebraska-Lincoln.

The author would like to thank Dr. Leen-Kiat Soh and Dr. Ashok Samal for their

support during work on this project and their comments on this thesis, and the Spring

2009 CSE 235 class at UNL for testing the IFE software and providing their comments.

27

References

[1] IMS Global Learning Consortium (2005, Jan). IMS Question and Test

Interoperability Specification v2.0. [Online]. Available:

http://www.imsglobal.org/question

[2] S. Riley, L. Miller, L-K. Soh, A. Samal, and G. Nugent. "Intelligent Learning Object

Guide (iLOG): A Framework for Automatic Empirically-Based Metadata

Generation." 14th International Conference of Artificial Intelligence in

Education, 2009.

[3] Advanced Distributed Learning Initiative (2009, Mar). Sharable Content Object

Reference Model 2004 4th

Edition. [Online]. Available:

http://www.adlnet.org/Technologies/scorm/default.aspx

[4] L. McLean and R. Tessman. “Increasing the Educational Impact of Digital libraries

through Learning Activity Templates,” Museums and the Web 2006: Proceedings,

March 2006. [Online]. Available:

http://www.archimuse.com/mw2006/papers/mclean/mclean.html. [Accessed April

21, 2009].

[5] R. Kay and L. Knaack. “Evaluating the Use of Learning Objects for Secondary

School Science,” Journal of Computers in Mathematics and Science Teaching,

vol. 26, no. 4, pp. 261-289, 2007.

[6] R. H. Kay and L. Knaack. “An Examination of the Impact of Learning Objects in

Secondary School,” Journal of Computer Assisted Learning, vol. 24, pp. 447-461,

Feb 2008.

[7] C. P. Lim, S. L. Lee, and C. Richards. “Developing Interactive Learning Objects for a

Computing Mathematics Module,” International Journal on E-Learning, vol. 5,

no. 2, pp. 221-244, 2006.

[8] C. Bradley and T. Boyle, “The Design, Development, and Use of Multimedia

Learning Objects,” Journal of Educational Multimedia and Hypermedia, vol. 13,

no. 4, pp. 371-389, 2004.

[9] F. Concannon, A. Flynn, and M. Campbell, “What Campus-Based Students Think

About the Quality and Benefits of E-Learning,” British Journal of Educational

Technology, vol. 36, no. 3, pp. 501-512, 2005.

[10] L. P. Rieber, S-C. Tzeng, and K. Tribble, “Discovery Learning, Representation, and

Explanation Within a Computer-Based Simulation: Finding the Right Mix,”

Journal of Learning and Instruction, vol. 14, pp. 307-323, 2004.

28

29

Appendix A – IFE Project File Documentation

A.1 IFE Project Manifest Format

Tag: <ife-project>

The ife-project tag is the root tag of the IFE project manifest

Children:

project-name [1]

source-file [1]

themes [1]

library-path [1]

include-libraries [1]

source-path [1]

swf-metadata [1]

Tag: <project-name>

The project-name tag contains the name of the IFE project as it is displayed in the

application title bar

Tag: <source-file>

The source-file tag contains the name of the MXML source file for the project

Tag: <themes>

The themes tag contains descriptions of all the CSS themes used by the project

Children:

<theme> [0..*]

Tag: <theme>

The theme tag contains the path to one CSS theme used by the project

Attribute: name [1] : string

The name of the theme as it appears to the user

Tag: <library-path>

The library-path tag contains the paths to additional Flash libraries linked by the project

Children:

<path-element> [0..*]

Tag: <path-element>

The path-element tag contains the path to a single resource referenced by the project

Tag: <include-libraries>

The include-libraries tag contains the paths to additional Flash libraries that should be

completely included in the Flash executable

Children:

<lib> [0..*]

30

Tag: <lib>

The lib tag contains the path to a single Flash library that should be completely included

in the Flash executable

Tag: <source-path>

The source-path tag contains paths to additional Flash source code referenced by the

project.

Children:

<path-element> [0..*]

Tag: <swf-metadata>

The swf-metadata tag is the root tag of the section of the manifest file describing the

metadata to be supplied to the Flex compiler. The metadata will be compiled into the

resulting Flash executable and can be retrieved at runtime by the Flash player.

Children:

contributors [1]

creators [1]

date [1]

description [1]

publishers [1]

title [1]

languages [1]

localized-descriptions [1]

localized-titles [1]

Tag: <contributors>

The contributors tag contains the names of people or organizations who contributed to

the development of the learning object.

Children:

<contributor> [0..*]

Tag: <contributor>

The contributor tag contains the name of a single contributor

Tag: <creators>

The creators tag contains the names of people or organizations who directly helped to

create the learning object.

Children:

<creator> [0..*]

Tag: <creator>

The creator tag contains the name of a single creator

Tag: <date>

31

The date element contains the date on which the learning object was compiled in the

format “YYYY-MM-DD”

Tag: <description>

The description tag contains a text description of the learning object.

Tag: <publishers>

The publishers tag contains the names of people or organizations who served as

publishers for the learning object.

Children:

<publisher> [0..*]

Tag: <publisher>

The publisher tag contains the name of a single publisher

Tag: <title>

The title tag contains the title of the learning object as it should appear to the end-user.

A.2 XML Runtime System Initialization Format

Tag: <ilog_app_initializer_xml>

The ilog_app_initializer_xml tag is the root tag of the application initialization data

section. The runtime system parses the data contained in this section to initialize the

learning object

Children:

<qti> [1]

<component> [0..*]

<qti_body_element> [0..*]

Tag: <qti>

The qti tag is the root tag of the QTI assessment specification format data. IFE uses a

subset of the QTI content model to specify the grading rules for graded assessment

content. The full QTI specification can be found at http://www.imsglobal.org

Tag: <component>

The component tag describes special information and properties that are associated with a

Flash graphical component.

Attribute: id [1] : string

The id attribute contains the globally unique identifier assigned to the component

Children:

<dragable> [0..1]

<drop_target> [0..1]

<event> [0..*]

<qti_element> [0..1]

32

Tag: <dragable>

The dragable tag indicates that the component described by the containing <component>

tag is a dragable component.

Attribute: data [1] : string

The data that is transferred to a drop target when the dragable component is dropped into

it. This attribute allows non-text components (i.e. images) to be given a textual

description for use in grading rules.

Attribute: match_group [0..*] : string

The name of the match group to which this dragable component belongs. Dragable

components in a given match group may only be dropped on drop targets from the same

match group. If no match groups are specified, the component is assumed to belong to all

match groups that currently exist.

Tag: <drop_target>

The drop_target tag indicates that the component described by the containing

<component> tag accepts drag-and-drop actions involving dragable components.

Attribute: match_group [0..*] : string

The name of the match group to which this drop target belongs. Drop targets in a given

match group may only accept dragable components from the same match group. If no

match groups are specified, the component is assumed to belong to all match groups that

currently exist.

Tag: <event>

The event tag describes an event to which the component described by the containing

<component> tag responds.

Attribute: type [1] : string

A string describing the type of the event. This can be either a built-in Flash event (such as

“click” or “mousemove”) or a custom event. Custom events defined by the iLOG Flash

Runtime Library can be recognized by an “ilog_” prefix.

Attribute: action [1..*] : string

The name of a function in the “edu.unl.ilog.runtime” package to execute when an event

of the associated type occurs.

Children:

<argument> [0..*]

Tag: <argument>

The argument tag specifies the value of an argument passed to the associated function.

Arguments are always passed to the function in the order in which the <argument> tags

occur.

Attribute: value [1] : string

The value of the argument. Strings that contain only numeric characters (possibly

prefixed with a „-„ character) are interpreted as signed integers. Strings containing

numeric characters (possible prefixed with a „-„ character) and exactly one period („.‟)

character are interpreted as floating-point numbers. All other strings are interpreted as

strings.

33

Tag: <qti_element>

The qti_element tag indicates that the component described by the containing

<component> tag is associated with a QTI element.

Attribute: id [1] : string

The globally unique identifier of the QTI element with which the component is

associated

Tag: <qti_body_element>

The qti_body_element tag describes special information and properties that are associated

with a QTI node that is of a type that is a subclass of the QTI body element type.

Attribute: qtiid [1] : string

The globally unique identifier of the QTI element associated with this tag.

Children:

<dynamic_interface> [0..1]

Tag: <dynamic_interface>

The dynamic_interface tag describes the runtime-generated interface associated with a

QTI element. Since QTI elements are describe only the content of a graded assessment

and not its presentation to the user, there must be a mapping between the state of the

graphical components that represent the assessment and the description of the assessment

in QTI format. The dynamic interface provides this mapping by allowing an Actionscript

function interface to be specified for the QTI element at runtime.

Children:

<query> [0..*]

Tag: <query>

The query tag contains the Actionscript code for an accessor method on a QTI element.

When the corresponding function is called on the QTI element‟s dynamic interface at

runtime, the code contained in the <query> tag is executed and the result is returned to

the caller.

Attribute: name [1] : string

The name of the method that will be added to the QTI element‟s dynamic interface. For

example, if the name attribute is “GetResponse”, the query will be executed at runtime by

calling “dynamic_interface_object.GetResponse();”

Attribute: returnType [1] : string

The name of the type that is returned by the query. Possible values are {“Array”,

“Object”, “int”, “Number”, “String”}

A.3 Resource Directory Structure

The IFE Project file contains a directory hierarchy that contains embedded resources used

by the project, such as images, sounds, and videos. The directory structure is as follows:

resources/ -- The root directory

o ilog/ -- Built-in resources (currently empty)

o user/ -- Resources imported by the user

34

images/ -- Images imported by the user

(Other directories such as “sounds” are planned)

35

Appendix B – C++ Documentation

Class Index

Class List

Here are the classes, structs, unions and interfaces with brief descriptions: ilog::As::AnyType (Container class for ActionScript types ) .......................................................... 38

ilog::As::ArgumentError .................................................................................................................. 41

ilog::As::Array (Class representing an Actionscript Array that can be used in STL containers ) 41

ilog::qti::AssessmentItem .................................................................................................................. 44

ilog::AssessmentManager (A class for managing QTI AssessmentItem instances ) ...................... 46

ilog::qti::AssociableChoice ................................................................................................................ 48

ilog::qti::BaseValue ............................................................................................................................ 50

ilog::qti::Block .................................................................................................................................... 51

ilog::qti::BlockInteraction ................................................................................................................. 53

ilog::qti::BodyElement (The base class of QTI 'bodyElement' objects ) ........................................ 54

ilog::qti::BodyElementManager (A central class for registering QTI body elements (i.e ) .......... 58

ilog::BorderInfo (Data object aggregating all border property information ) .............................. 59

ilog::BorderProperty (A wxPGProperty subclass used to display the "border" settings of a Flash

component ) .......................................................................................................................................... 60

ilog::qti::Choice .................................................................................................................................. 61

ilog::qti::ChoiceInteraction ............................................................................................................... 63

ilog::ChoiceInteractionWizard (The wizard for creating ChoiceInteraction instances ) ............. 66

ilog::ChoiceInteractionWizardPage_Cardinality (The 'cardinality' page of the wizard ) ............ 67

ilog::ChoiceInteractionWizardPage_Responses (The 'responses' page of the wizard ) ................ 68

ilog::ClipboardCloser (Guard object to ensure wxClipboard is properly release ) ...................... 70

ilog::ColoredFont (Aggregates a wxFont and a wxColour object ) ................................................ 70

ilog::As::ComponentDataObject (A wxDataObject subclass which represents Actionscript

graphical components when they are stored in the clipboard ) ....................................................... 71

ilog::As::ComponentExtraProperties (A class for storing and manipulating the properties of a

component that are managed on the C++ side of the application rather than the Flash side ) .... 72

ilog::As::ComponentHandle (A handle class which provides a link to an Actionscript graphical

component managed by the Flash portion of the editor ) ................................................................ 75

ilog::As::ComponentInfo (A data structure describing the properties of an Actionscript

graphical component ) ......................................................................................................................... 77

ilog::ComponentPalette (A control for creating Flash graphical components ) ............................ 78

ilog::ComponentsPanel (A panel that displays a tree view of the components in the project ) .... 79

ilog::qti::Correct ................................................................................................................................ 80

ilog::qti::CorrectResponse ................................................................................................................ 82

ilog::CreateComponentCommand (A command that creates an Actionscript component ) ........ 84

ilog::File::DirectoryEnumerator (WxDirTraverser subclass that only enumerates directories ) 85

ilog::DragablePropertiesPanel .......................................................................................................... 86

ilog::DropTargetPropertiesPanel ..................................................................................................... 87

ilog::EditorDocument (WxDocument subclass for the main IFE 'document' ) ............................. 88

ilog::EditorPanel (The central panel containing the Flash slide editor ) ........................................ 89

ilog::EditorView (WxView subclass for the main 'editor' view ) .................................................... 92

ilog::qti::Element (The root of the QTI XML element hierarchy ) ................................................ 92

36

ilog::As::Error .................................................................................................................................... 96

ilog::As::EventAction ......................................................................................................................... 97

ilog::ExecuteOnExit (Executes a given parameterless function on block exit ) ............................. 98

ilog::qti::ExitResponse ....................................................................................................................... 99

ilog::qti::Expression ........................................................................................................................... 99

FileDeleter (Deletes a file on scope exit ) ......................................................................................... 100

ilog::FileFormatException (Exception representing a mal-formatted input file ) ....................... 101

ilog::FileIoException (Exception representing attempted access to a non-existant or otherwise

unusable file ) ..................................................................................................................................... 101

ilog::FlashCommunicationException (Exception class thrown by Flash <-> C++ communication

operations ) ......................................................................................................................................... 102

ilog::As::FlashInterface (Container class representing the Actionscript functions exposed in the

editor's Flash code ) ........................................................................................................................... 102

ilog::FlashPlayerCtrl (Base class for objects which wrap a Flash player ) .................................. 104

ilog::qti::Flow ................................................................................................................................... 108

ilog::qti::FlowStatic .......................................................................................................................... 109

ilog::FontProperty ............................................................................................................................ 111

ilog::FunctionCall (Represents a function call passed from Flash to C++ ) ................................. 112

ilog::GeneralPropertiesPanel .......................................................................................................... 112

ilog::IdGenerator (An object that generates unique numeric identifiers ) ................................... 113

ilog::IFlashPlayer (The interface for an Adobe Flash player ) ...................................................... 115

ilog::qti::IInstantiable (The interface of a class that can be instantiated with Flash components ) 122

ilog::As::IllegalOperationError ...................................................................................................... 123

ilog::qti::Include ............................................................................................................................... 124

ilog::qti::Inline .................................................................................................................................. 124

ilog::qti::InlineStatic ........................................................................................................................ 125

ilog::qti::Interaction (Base class of QTI 'interaction' types ) ........................................................ 127

ilog::Interaction (A class encapsulating a QTI Interaction and the Flash graphical components

used to instantiate it ) ........................................................................................................................ 129

ilog::InteractionCreationDialog (A dialog class that lets the user choose which interaction wizard

to launch ) ........................................................................................................................................... 130

ilog::InteractionCreationValidator (WxValidator subclass for InteractionCreationValidator ) 131

ilog::As::IOError ............................................................................................................................. 132

ilog::IPropertiesDisplayer (The interface of a control that displays the properties of a Flash

component ) ........................................................................................................................................ 132

ilog::qti::ISerializable (The interface of a component that can be serialized to and restored form

XML ) ................................................................................................................................................. 133

ilog::qti::IsNull ................................................................................................................................. 136

ilog::qti::ItemBody ........................................................................................................................... 138

ilog::LengthRestrictedTextValidator (A wxTextValidator subclass that restricts the text entered

in a text control to a fixed length ) ................................................................................................... 139

ilog::qti::LookupOutcomeValue ..................................................................................................... 140

ilog::qti::Mapping ............................................................................................................................ 140

ilog::qti::MapResponse .................................................................................................................... 143

ilog::qti::Match ................................................................................................................................. 145

ilog::qti::MatchInteraction .............................................................................................................. 146

ilog::MatchInteractionWizard (A wxWizard used to create a Match interaction ) .................... 149

ilog::MatchInteractionWizardPage_Answer (The 'answers' page of the wizard ) ...................... 150

ilog::MatchInteractionWizardPage_Parameters (The 'parameters' page of the wizard ) ......... 151

ilog::MatchInteractionWizardPage_Responses (The 'responses' page of the wizard ) ............... 152

ilog::As::MemoryError ................................................................................................................... 153

37

ilog::Msw_FlashPlayerCtrl (An implementation of FlashPlayerCtrl on the Microsoft Windows

platform ) ........................................................................................................................................... 153

ilog::MxmlParser (Parser for creating Flash component hierarchy from MXML source ) ....... 159

ilog::MxmlParsingException (Exception indicating an error while parsing an MXML source file

) ........................................................................................................................................................... 160

ilog::MyApp (WxApp subclass for the IFE application ) .............................................................. 160

ilog::NullDeleter (A functor that does nothing ) ............................................................................. 161

ilog::As::Object (Class representing an Actionscript Object that can be used in STL containers ) 161

ilog::qti::ObjectFlow ........................................................................................................................ 165

ilog::OptionListBuilder (A graphical control that lets the user enter lines of text and add them to

a list ) .................................................................................................................................................. 167

ilog::OrganizerNotebook (A wxNotebook containing controls for manipulating the organization

of the project ) .................................................................................................................................... 167

ilog::qti::OutcomeRule .................................................................................................................... 168

ilog::Project (Describes the data contained in the IFE project manifest ) ................................... 169

ilog::ProjectManager (A singleton class that manages the global state of the current project ) 170

ilog::qti::Prompt ............................................................................................................................... 172

ilog::PropertiesDisplayPanel (An abstract wxPanel subclass that implements the

IPropertiesDisplayer interface ) ....................................................................................................... 174

ilog::PropertiesPanel ........................................................................................................................ 174

ilog::As::PropertyCache (A cache for the properties of Flash components featuring constant-

time lookup ) ...................................................................................................................................... 175

ilog::PropertyEditor (A control for editing the properties of a Flash graphical component ) ... 177

ilog::PublishDialog (A dialog box that allows users to enter Flash publish metadata ) .............. 178

ilog::As::RangeError ....................................................................................................................... 178

ilog::As::ReferenceError ................................................................................................................. 179

ilog::RemoveComponentCommand (A command that removes an Actionscript component from

the screen ) ......................................................................................................................................... 179

ilog::qti::ResponseCondition ........................................................................................................... 180

ilog::qti::ResponseDeclaration ........................................................................................................ 182

ilog::qti::ResponseElse ..................................................................................................................... 184

ilog::qti::ResponseElseIf .................................................................................................................. 186

ilog::qti::ResponseIf ......................................................................................................................... 188

ilog::qti::ResponseProcessing .......................................................................................................... 189

ilog::qti::ResponseProcessingFragment ......................................................................................... 191

ilog::qti::ResponseRule .................................................................................................................... 192

ilog::SetComponentPropertyCommand (A command that sets one or more properties of an

Actionscript component ) .................................................................................................................. 193

ilog::qti::SetOutcomeValue ............................................................................................................. 193

ilog::SharedPointerComparator< T > (Generic comparator for using shared_ptr objects as keys

in ordered associative containers ) ................................................................................................... 195

ilog::qti::SimpleAssociableChoice .................................................................................................. 196

ilog::qti::SimpleChoice .................................................................................................................... 199

ilog::qti::SimpleInline ...................................................................................................................... 200

ilog::qti::SimpleMatchSet ................................................................................................................ 202

ilog::SlideChooser (A panel that hosts the Flash-based slide chooser ) ........................................ 204

ilog::qti::Span ................................................................................................................................... 205

ilog::As::StackOverflowError ......................................................................................................... 208

ilog::As::SyntaxError ...................................................................................................................... 208

ilog::qti::TextRun ............................................................................................................................. 208

ilog::TopFrame (The main wxFrame subclass for the application ) ............................................. 210

38

ilog::TransformComponentCommand (Represents a transform operation (i.e ) ........................ 212

ilog::As::TypeError ......................................................................................................................... 213

ilog::As::URIError ........................................................................................................................... 213

ilog::qti::Variable ............................................................................................................................. 214

ilog::qti::VariableDeclaration ......................................................................................................... 215

ilog::WxException (Generic exception class representing an error in the wxWidgets library ) 217

ilog::wxStringComparator (Allows wxString to be used as a key in an STL map ) .................... 219

Class Documentation

ilog::As::AnyType Class Reference Container class for ActionScript types.

#include <any_type.h>

Public Member Functions

AnyType (ActionscriptTypes type=AS_VOID)

AnyType (const AnyType &that)

AnyType (const char *s)

AnyType (const wxString &s)

AnyType (bool b)

AnyType (double d)

AnyType (As::Int i)

AnyType (As::UInt u)

AnyType (const Array &v)

AnyType (const Object &obj)

AnyType (const wxVariant &variant)

~AnyType ()

AnyType & operator= (const AnyType &that)

bool IsVoid () const

bool IsNull () const

bool IsString () const

bool IsBool () const

bool IsDouble () const

bool IsInt () const __deprecated__

bool IsIntegral () const

bool IsArray () const

bool IsObject () const

wxString ToString () const

bool ToBool () const

double ToDouble () const

As::Int ToInt () const

As::UInt ToUInt () const

Array ToArray () const

Object ToObject () const

ActionscriptTypes GetType () const

39

Static Public Member Functions

static AnyType Null ()

Detailed Description

Container class for ActionScript types.

Never assign 'NULL' to an AnyType instance. Use the static function AnyType::Null() instead.

If you want to assign a null char*, you must use AnyType( (char*)0 );

Note: Due to the fact that the Flash ExternalInterface API does not distinguish between signed

and unsigned integers, both are stored in AnyType as signed integers. The 'ToUInt()' method

first casts the internal union container to an As::Int, then applies a static_cast to convert the

As::Int to an As::UInt. If integers are represented in two's-complement, this works. However, it

does NOT work with other representations. To my knowledge, all C++ implementations use

two's-complement. However, this is something to check if strange errors occur with component

creation / interaction using a particular compiler.

Constructor & Destructor Documentation

ilog::As::AnyType::AnyType (ActionscriptTypes type = AS_VOID) [explicit]

Construct an empty AnyType with type 'type'.

ilog::As::AnyType::AnyType (const AnyType & that)

Copy constructor.

ilog::As::AnyType::AnyType (const char * s)

Implicit conversion ctor from C-string.

ilog::As::AnyType::AnyType (const wxString & s)

Implicit conversion ctor from wxString.

ilog::As::AnyType::AnyType (bool b)

Implicit conversion ctor from bool.

ilog::As::AnyType::AnyType (double d)

Implicit conversion ctor from double.

ilog::As::AnyType::AnyType (As::Int i)

Implicit conversion ctor from As::Int.

ilog::As::AnyType::AnyType (As::UInt u)

Implicit conversion ctor from As::UInt.

ilog::As::AnyType::AnyType (const Array & v)

Implicit conversion ctor from Array.

ilog::As::AnyType::AnyType (const Object & obj)

Implicit conversion ctor from Object.

40

ilog::As::AnyType::AnyType (const wxVariant & variant)

Implicit conversion ctor from wxVariant.

ilog::As::AnyType::~AnyType ()

Destructor.

Member Function Documentation

ActionscriptTypes ilog::As::AnyType::GetType () const

Get type constant.

bool ilog::As::AnyType::IsArray () const

Contained type is AS_ARRAY -- ToArray() will succeed.

bool ilog::As::AnyType::IsBool () const

Contained type is AS_BOOLEAN -- ToBool() will succeed.

bool ilog::As::AnyType::IsDouble () const

Contained type is AS_NUMBER -- ToDouble() will succeed.

bool ilog::As::AnyType::IsInt () const

Contained type is AS_INTEGER -- both ToInt() and ToUInt() will succeed.

bool ilog::As::AnyType::IsIntegral () const

bool ilog::As::AnyType::IsNull () const

Contained type is AS_NULL -- ToXXX() will fail.

bool ilog::As::AnyType::IsObject () const

Contained type is AS_OBJECT -- ToObject() will succeed.

bool ilog::As::AnyType::IsString () const

Contained type is AS_STRING -- ToString() will succeed.

bool ilog::As::AnyType::IsVoid () const

Contained type is AS_VOID -- ToXXX() will fail.

static AnyType ilog::As::AnyType::Null () [inline, static]

Static initializer for 'null' AnyType instances.

AnyType& ilog::As::AnyType::operator= (const AnyType & that)

Overloaded assignment operator.

Array ilog::As::AnyType::ToArray () const

Convert to Array -- Succeeds iff IsArray() returns true.

bool ilog::As::AnyType::ToBool () const

Convert to bool -- Succeeds iff IsBool() returns true.

41

double ilog::As::AnyType::ToDouble () const

Convert to double -- Succeeds iff IsDouble() returns true.

As::Int ilog::As::AnyType::ToInt () const

Convert to As::Int -- Succeeds iff IsInt() returns true.

Be aware that this function performs a static cast to signed int.

Object ilog::As::AnyType::ToObject () const

Convert to Object -- Succeeds iff IsObject() returns true.

wxString ilog::As::AnyType::ToString () const

Convert to wxString -- Succeeds iff IsString() returns true.

As::UInt ilog::As::AnyType::ToUInt () const

Convert to As::UInt -- Succeeds iff IsInt() returns true.

Be aware that this function performs a static cast to unsigned int.

ilog::As::ArgumentError Class Reference #include <exceptions.h>

Inheritance diagram for ilog::As::ArgumentError:

Public Member Functions

ArgumentError (const wxString &what)

Constructor & Destructor Documentation

ilog::As::ArgumentError::ArgumentError (const wxString & what) [inline]

ilog::As::Array Class Reference Class representing an Actionscript Array that can be used in STL containers.

#include <array.h>

Public Types

typedef AnyTypeVector::iterator iterator

typedef AnyTypeVector::const_iterator const_iterator

42

typedef AnyTypeVector::reverse_iterator reverse_iterator

typedef AnyTypeVector::const_reverse_iterator const_reverse_iterator

Public Member Functions

Array ()

Array (const AnyTypeVector &v)

Array (shared_ptr< AnyTypeVector > v)

Array (const Array &that)

~Array ()

iterator begin ()

const_iterator begin () const

iterator end ()

const_iterator end () const

reverse_iterator rbegin ()

const_reverse_iterator rbegin () const

reverse_iterator rend ()

const_reverse_iterator rend () const

size_t size () const

bool empty () const

Array & operator= (const Array &that)

AnyType & operator[] (size_t i)

AnyType operator[] (size_t i) const

void push_back (const AnyType &x)

bool operator< (const Array &that) const

bool operator== (const Array &that) const

bool operator!= (const Array &that) const

Detailed Description

Class representing an Actionscript Array that can be used in STL containers.

Member Typedef Documentation

typedef AnyTypeVector::const_iterator ilog::As::Array::const_iterator

typedef AnyTypeVector::const_reverse_iterator ilog::As::Array::const_reverse_iterator

typedef AnyTypeVector::iterator ilog::As::Array::iterator

typedef AnyTypeVector::reverse_iterator ilog::As::Array::reverse_iterator

Constructor & Destructor Documentation

ilog::As::Array::Array () [inline]

ilog::As::Array::Array (const AnyTypeVector & v) [inline, explicit]

Copies 'v' since we're not sure if it was created on the stack or on the heap.

43

This constructor is explicit so that you don't accidentally make lots of expensive copies

through implicit conversions.

ilog::As::Array::Array (shared_ptr< AnyTypeVector > v) [inline, explicit]

ilog::As::Array::Array (const Array & that) [inline]

ilog::As::Array::~Array () [inline]

Member Function Documentation

const_iterator ilog::As::Array::begin () const [inline]

iterator ilog::As::Array::begin () [inline]

bool ilog::As::Array::empty () const [inline]

const_iterator ilog::As::Array::end () const [inline]

iterator ilog::As::Array::end () [inline]

bool ilog::As::Array::operator!= (const Array & that) const [inline]

This is identity-of-reference equivalence.

bool ilog::As::Array::operator< (const Array & that) const [inline]

This method is for the use of ordered containers ONLY.

In general, the concept of "ordering" does not make sense for an Array.

Array& ilog::As::Array::operator= (const Array & that) [inline]

bool ilog::As::Array::operator== (const Array & that) const [inline]

This is identity-of-reference equivalence.

AnyType ilog::As::Array::operator[] (size_t i) const [inline]

AnyType& ilog::As::Array::operator[] (size_t i) [inline]

void ilog::As::Array::push_back (const AnyType & x) [inline]

const_reverse_iterator ilog::As::Array::rbegin () const [inline]

reverse_iterator ilog::As::Array::rbegin () [inline]

const_reverse_iterator ilog::As::Array::rend () const [inline]

reverse_iterator ilog::As::Array::rend () [inline]

size_t ilog::As::Array::size () const [inline]

44

ilog::qti::AssessmentItem Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::AssessmentItem:

Public Types

typedef shared_ptr< AssessmentItem > Ptr

Public Member Functions

As::ComponentHandle CreateSubmitButton (shared_ptr< As::FlashInterface > flash_interface)

const

String GetName () const

String GetIdentifier () const

void SetIdentifier (const wxString &identifier)

String GetTitle () const

void SetTitle (String title)

String256 GetLabel () const

void SetLabel (String256 label)

Language GetLanguage () const

void SetLanguage (Language lang)

Boolean IsAdaptive () const

void SetAdaptive (Boolean adaptive)

Boolean IsTimeDependent () const

void SetTimeDependent (Boolean time_dependent)

String256 GetToolName () const

void SetToolName (String256 tool_name)

String256 GetToolVersion () const

void SetToolVersion (String256 tool_version)

ItemBody::Ptr GetItemBody () const

void SetItemBody (ItemBody::Ptr body)

ResponseProcessing::Ptr GetResponseProcessing () const

void SetResponseProcessing (ResponseProcessing::Ptr process)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *)

ILOG_QTI_IMPLEMENT_CONTAINER_ELEMENT (ResponseDeclaration::Ptr,

m_ResponseDeclarations, ResponseDeclaration, ResponseDeclarations) protected

AssessmentItem (const String &title, Boolean adaptive=false, Boolean time_dependent=false)

AssessmentItem (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

45

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (const String &title, Boolean adaptive=false, Boolean time_dependent=false)

Member Typedef Documentation

typedef shared_ptr<AssessmentItem> ilog::qti::AssessmentItem::Ptr

Reimplemented from ilog::qti::Element (p.94).

Constructor & Destructor Documentation

ilog::qti::AssessmentItem::AssessmentItem (const String & title, Boolean adaptive =

false, Boolean time_dependent = false) [explicit]

ilog::qti::AssessmentItem::AssessmentItem (const wxXmlNode * root_node) [explicit]

Member Function Documentation

static Ptr ilog::qti::AssessmentItem::Create (const String & title, Boolean adaptive =

false, Boolean time_dependent = false) [static]

static Ptr ilog::qti::AssessmentItem::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::AssessmentItem::Create () [static]

As::ComponentHandle ilog::qti::AssessmentItem::CreateSubmitButton (shared_ptr< As::FlashInterface > flash_interface) const

String ilog::qti::AssessmentItem::GetIdentifier () const [inline]

ItemBody::Ptr ilog::qti::AssessmentItem::GetItemBody () const [inline]

String256 ilog::qti::AssessmentItem::GetLabel () const [inline]

Language ilog::qti::AssessmentItem::GetLanguage () const [inline]

String ilog::qti::AssessmentItem::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

46

ResponseProcessing::Ptr ilog::qti::AssessmentItem::GetResponseProcessing () const [inline]

String ilog::qti::AssessmentItem::GetTitle () const [inline]

String256 ilog::qti::AssessmentItem::GetToolName () const [inline]

String256 ilog::qti::AssessmentItem::GetToolVersion () const [inline]

ilog::qti::AssessmentItem::ILOG_QTI_IMPLEMENT_CONTAINER_ELEMENT (ResponseDeclaration::Ptr, m_ResponseDeclarations, ResponseDeclaration, ResponseDeclarations) [inline]

void ilog::qti::AssessmentItem::InitializeFromXml (const wxXmlNode *) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

Boolean ilog::qti::AssessmentItem::IsAdaptive () const [inline]

Boolean ilog::qti::AssessmentItem::IsTimeDependent () const [inline]

wxXmlNode* ilog::qti::AssessmentItem::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

void ilog::qti::AssessmentItem::SetAdaptive (Boolean adaptive) [inline]

void ilog::qti::AssessmentItem::SetIdentifier (const wxString & identifier) [inline]

void ilog::qti::AssessmentItem::SetItemBody (ItemBody::Ptr body) [inline]

void ilog::qti::AssessmentItem::SetLabel (String256 label) [inline]

void ilog::qti::AssessmentItem::SetLanguage (Language lang) [inline]

void ilog::qti::AssessmentItem::SetResponseProcessing (ResponseProcessing::Ptr process) [inline]

void ilog::qti::AssessmentItem::SetTimeDependent (Boolean time_dependent) [inline]

void ilog::qti::AssessmentItem::SetTitle (String title) [inline]

void ilog::qti::AssessmentItem::SetToolName (String256 tool_name) [inline]

void ilog::qti::AssessmentItem::SetToolVersion (String256 tool_version) [inline]

ilog::AssessmentManager Class Reference A class for managing QTI AssessmentItem instances.

47

#include <assessment_manager.h>

Public Types

typedef shared_ptr< AssessmentManager > Ptr

Public Member Functions

qti::Identifier AddAssessmentItem (qti::AssessmentItem::Ptr assessment_item)

qti::AssessmentItem::Ptr GetAssessmentItem (qti::Identifier id)

std::vector< qti::AssessmentItem::Ptr > GetAllAssessmentItems ()

void RemoveAssessmentItem (qti::Identifier id)

void RemoveAllAssessmentItems ()

bool HasAssessmentItem (qti::Identifier id)

wxXmlNode * SerializeAssessmentItems () const

std::vector< wxXmlNode * > SerializeDynamicInterface () const

Detailed Description

A class for managing QTI AssessmentItem instances.

Member Typedef Documentation

typedef shared_ptr<AssessmentManager> ilog::AssessmentManager::Ptr

Member Function Documentation

qti::Identifier ilog::AssessmentManager::AddAssessmentItem (qti::AssessmentItem::Ptr

assessment_item) [inline]

Add an AssessmentItem instance to the manager.

std::vector<qti::AssessmentItem::Ptr> ilog::AssessmentManager::GetAllAssessmentItems

() [inline]

Get all AssessmentItem instances registered with the manager.

qti::AssessmentItem::Ptr ilog::AssessmentManager::GetAssessmentItem (qti::Identifier id) [inline]

Get the AssessmentItem with the given identifier.

bool ilog::AssessmentManager::HasAssessmentItem (qti::Identifier id) [inline]

Is an AssessmentItem with the given identifier registered with the manager.

void ilog::AssessmentManager::RemoveAllAssessmentItems () [inline]

Remove all AssessmentItems from the manager.

void ilog::AssessmentManager::RemoveAssessmentItem (qti::Identifier id) [inline]

Remove the AssessmentItem with the given identifier.

48

wxXmlNode* ilog::AssessmentManager::SerializeAssessmentItems () const [inline]

Calls the Serialize() methods of all AssessmentItems and aggregate them.

std::vector<wxXmlNode*> ilog::AssessmentManager::SerializeDynamicInterface () const [inline]

Serializes the dynamic interfaces of all BodyElements that are children of AssessmentItem

instances registered with the manager.

ilog::qti::AssociableChoice Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::AssociableChoice:

Public Types

typedef shared_ptr< AssociableChoice > Ptr

Public Member Functions

wxXmlNode * Serialize () const

void AppendMatchGroup (Identifier child)

Identifier GetMatchGroupAt (int index) const

int GetMatchGroupCount () const

std::vector< Identifier > GetAllMatchGroups () const

int GetMatchGroupIndex (Identifier child) const

bool HasMatchGroup (Identifier child)

void InsertMatchGroup (Identifier child, int index)

void RemoveMatchGroup (Identifier child)

void RemoveMatchGroup (int index)

void InitializeFromXml (const wxXmlNode *root_node)

49

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Protected Member Functions

AssociableChoice ()

AssociableChoice (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<AssociableChoice> ilog::qti::AssociableChoice::Ptr

Reimplemented from ilog::qti::Choice (p.62).

Reimplemented in ilog::qti::SimpleAssociableChoice (p.197).

Constructor & Destructor Documentation

ilog::qti::AssociableChoice::AssociableChoice () [protected]

ilog::qti::AssociableChoice::AssociableChoice (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

void ilog::qti::AssociableChoice::AppendMatchGroup (Identifier child) [inline]

static Ptr ilog::qti::AssociableChoice::CreateFromXml (const wxXmlNode * root_node) [static]

Reimplemented from ilog::qti::Choice (p.63).

std::vector<Identifier> ilog::qti::AssociableChoice::GetAllMatchGroups () const [inline]

Identifier ilog::qti::AssociableChoice::GetMatchGroupAt (int index) const [inline]

int ilog::qti::AssociableChoice::GetMatchGroupCount () const [inline]

int ilog::qti::AssociableChoice::GetMatchGroupIndex (Identifier child) const [inline]

bool ilog::qti::AssociableChoice::HasMatchGroup (Identifier child) [inline]

void ilog::qti::AssociableChoice::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::Choice (p.63).

Reimplemented in ilog::qti::SimpleAssociableChoice (p.198).

50

void ilog::qti::AssociableChoice::InsertMatchGroup (Identifier child, int index) [inline]

void ilog::qti::AssociableChoice::RemoveMatchGroup (int index) [inline]

void ilog::qti::AssociableChoice::RemoveMatchGroup (Identifier child) [inline]

wxXmlNode* ilog::qti::AssociableChoice::Serialize () const [virtual]

Reimplemented from ilog::qti::Choice (p.63).

Reimplemented in ilog::qti::SimpleAssociableChoice (p.198).

ilog::qti::BaseValue Class Reference #include <expression.h>

Inheritance diagram for ilog::qti::BaseValue:

Public Types

typedef shared_ptr< BaseValue > Ptr

Public Member Functions

wxString GetName () const

ValueType GetValue () const

void SetValue (ValueType v)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (BaseType type, ValueType value=ValueType())

51

Member Typedef Documentation

typedef shared_ptr<BaseValue> ilog::qti::BaseValue::Ptr

Reimplemented from ilog::qti::Expression (p.100).

Member Function Documentation

static Ptr ilog::qti::BaseValue::Create (BaseType type, ValueType value = ValueType()) [static]

static Ptr ilog::qti::BaseValue::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::BaseValue::Create () [static]

wxString ilog::qti::BaseValue::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

ValueType ilog::qti::BaseValue::GetValue () const [inline]

void ilog::qti::BaseValue::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::BaseValue::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

void ilog::qti::BaseValue::SetValue (ValueType v) [inline]

ilog::qti::Block Class Reference

#include <content_model.h>

Inheritance diagram for ilog::qti::Block:

52

Public Types

typedef shared_ptr< Block > Ptr

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Protected Member Functions

Block ()

Member Typedef Documentation

typedef shared_ptr<Block> ilog::qti::Block::Ptr

Reimplemented from ilog::qti::Element (p.94).

Reimplemented in ilog::qti::BlockInteraction (p.53), ilog::qti::ChoiceInteraction (p.65), and

ilog::qti::MatchInteraction (p.148).

Constructor & Destructor Documentation

ilog::qti::Block::Block () [inline, protected]

Member Function Documentation

static Ptr ilog::qti::Block::CreateFromXml (const wxXmlNode * root_node) [static]

Reimplemented in ilog::qti::BlockInteraction (p.54).

53

ilog::qti::BlockInteraction Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::BlockInteraction:

Public Types

typedef shared_ptr< BlockInteraction > Ptr

Public Member Functions

Prompt::Ptr GetPrompt () const

void SetPrompt (Prompt::Ptr prompt)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Protected Member Functions

BlockInteraction ()

BlockInteraction (Identifier response_identifier)

BlockInteraction (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<BlockInteraction> ilog::qti::BlockInteraction::Ptr

Reimplemented from ilog::qti::Interaction (p.128).

Reimplemented in ilog::qti::ChoiceInteraction (p.65), and ilog::qti::MatchInteraction (p.148).

54

Constructor & Destructor Documentation

ilog::qti::BlockInteraction::BlockInteraction () [protected]

ilog::qti::BlockInteraction::BlockInteraction (Identifier response_identifier) [explicit, protected]

ilog::qti::BlockInteraction::BlockInteraction (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::BlockInteraction::CreateFromXml (const wxXmlNode * root_node) [static]

Create an Interaction subclass based on the XML root node.

Reimplemented from ilog::qti::Interaction (p.128).

Prompt::Ptr ilog::qti::BlockInteraction::GetPrompt () const [inline]

void ilog::qti::BlockInteraction::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::Interaction (p.128).

Reimplemented in ilog::qti::ChoiceInteraction (p.65), and ilog::qti::MatchInteraction (p.148).

wxXmlNode* ilog::qti::BlockInteraction::Serialize () const [virtual]

Reimplemented from ilog::qti::Interaction (p.128).

Reimplemented in ilog::qti::ChoiceInteraction (p.66), and ilog::qti::MatchInteraction (p.149).

void ilog::qti::BlockInteraction::SetPrompt (Prompt::Ptr prompt) [inline]

ilog::qti::BodyElement Class Reference The base class of QTI 'bodyElement' objects.

#include <content_model.h>

Inheritance diagram for ilog::qti::BodyElement:

55

Public Types

typedef shared_ptr< BodyElement > Ptr

Public Member Functions

virtual ~BodyElement ()

bool IsInstantiable () const

Identifier GetId () const

std::vector< As::ComponentHandle > GetGraphicalComponents () const

StyleClass GetStyleClass () const

void SetStyleClass (StyleClass style)

Language GetLanguage () const

void SetLanguage (Language lang)

String256 GetLabel () const

void SetLabel (String256 label)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

void AddDynamicEvent (const wxString &event_name, const wxString &arg_type, const wxString

&code)

void AddDynamicQuery (const wxString &name, const wxString &return_type, const wxString

&code)

wxXmlNode * GetDynamicInterface () const

Protected Member Functions

BodyElement (String256 label=wxT(""), StyleClass cls=wxT(""), Language lang=wxT(""))

BodyElement (const wxXmlNode *root_node)

void AddGraphicalComponent (As::ComponentHandle h_comp)

void RemoveGraphicalComponent (As::ComponentHandle h_comp)

Detailed Description

The base class of QTI 'bodyElement' objects.

BodyElements have a graphical representation on the screen.

Member Typedef Documentation

typedef shared_ptr<BodyElement> ilog::qti::BodyElement::Ptr

Reimplemented from ilog::qti::IInstantiable (p.123).

56

Reimplemented in ilog::qti::Interaction (p.128), ilog::qti::Prompt (p.173), ilog::qti::SimpleInline

(p.201), ilog::qti::BlockInteraction (p.53), ilog::qti::Span (p.206), ilog::qti::Choice (p.62),

ilog::qti::SimpleChoice (p.199), ilog::qti::AssociableChoice (p.49),

ilog::qti::SimpleAssociableChoice (p.197), ilog::qti::ChoiceInteraction (p.65),

ilog::qti::MatchInteraction (p.148), and ilog::qti::ItemBody (p.138).

Constructor & Destructor Documentation

virtual ilog::qti::BodyElement::~BodyElement () [virtual]

ilog::qti::BodyElement::BodyElement (String256 label = wxT(""), StyleClass cls =

wxT(""), Language lang = wxT("")) [explicit, protected]

ilog::qti::BodyElement::BodyElement (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

void ilog::qti::BodyElement::AddDynamicEvent (const wxString & event_name, const wxString & arg_type, const wxString & code)

Add an 'event' function to the BodyElement's dynamic interface.

Parameters:

event_name The name of the event to handle.

arg_type The type of the single event handler argument (i.e. the event).

code The code that will execute when the event handler is called.

void ilog::qti::BodyElement::AddDynamicQuery (const wxString & name, const wxString & return_type, const wxString & code)

Add a 'query' function to the BodyElement's dynamic interface.

Parameters:

name The name of the query method.

return_type The return type of the method (as a string)

code The code that will execute when the query is called. Must return a value of the type specified

in 'return_type'

void ilog::qti::BodyElement::AddGraphicalComponent (As::ComponentHandle h_comp) [inline, protected]

Add a graphical component to the representation of this BodyElement.

wxXmlNode* ilog::qti::BodyElement::GetDynamicInterface () const

Get the dynamic interface description in XML form.

std::vector<As::ComponentHandle> ilog::qti::BodyElement::GetGraphicalComponents ()

const [inline, virtual]

Get the graphical components that comprise this BodyElement.

57

Implements ilog::qti::IInstantiable (p.123).

Identifier ilog::qti::BodyElement::GetId () const [inline, virtual]

Get the 'id' property of the BodyElement.

Implements ilog::qti::IInstantiable (p.123).

String256 ilog::qti::BodyElement::GetLabel () const [inline]

Get the 'label' property.

Language ilog::qti::BodyElement::GetLanguage () const [inline]

Get the 'lang' property.

StyleClass ilog::qti::BodyElement::GetStyleClass () const [inline]

Get the 'style' property.

void ilog::qti::BodyElement::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

Reimplemented in ilog::qti::Interaction (p.128), ilog::qti::Prompt (p.173), ilog::qti::SimpleInline

(p.202), ilog::qti::BlockInteraction (p.54), ilog::qti::Span (p.207), ilog::qti::Choice (p.63),

ilog::qti::SimpleChoice (p.200), ilog::qti::AssociableChoice (p.49),

ilog::qti::SimpleAssociableChoice (p.198), ilog::qti::ChoiceInteraction (p.65),

ilog::qti::MatchInteraction (p.148), and ilog::qti::ItemBody (p.139).

bool ilog::qti::BodyElement::IsInstantiable () const [inline, virtual]

Returns true -- BodyElements are instantiable.

Reimplemented from ilog::qti::Element (p.95).

Reimplemented in ilog::qti::ChoiceInteraction (p.66), and ilog::qti::MatchInteraction (p.149).

void ilog::qti::BodyElement::RemoveGraphicalComponent (As::ComponentHandle

h_comp) [inline, protected]

Remove a graphical component from the representation of this BodyElement.

wxXmlNode* ilog::qti::BodyElement::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

Reimplemented in ilog::qti::Interaction (p.128), ilog::qti::Prompt (p.173), ilog::qti::SimpleInline

(p.202), ilog::qti::BlockInteraction (p.54), ilog::qti::Span (p.207), ilog::qti::Choice (p.63),

ilog::qti::SimpleChoice (p.200), ilog::qti::AssociableChoice (p.50),

ilog::qti::SimpleAssociableChoice (p.198), ilog::qti::ChoiceInteraction (p.66),

ilog::qti::MatchInteraction (p.149), and ilog::qti::ItemBody (p.139).

void ilog::qti::BodyElement::SetLabel (String256 label) [inline]

Set the 'label' property.

58

void ilog::qti::BodyElement::SetLanguage (Language lang) [inline]

Set the 'lang' property.

void ilog::qti::BodyElement::SetStyleClass (StyleClass style) [inline]

Set the 'style' property.

ilog::qti::BodyElementManager Class Reference A central class for registering QTI body elements (i.e.

#include <body_element_manager.h>

Public Member Functions

void AddBodyElement (BodyElement::Ptr element)

qti::BodyElement::Ptr GetBodyElement (const Identifier &id) const

bool HasBodyElement (const Identifier &id) const

void RemoveBodyElement (const Identifier &id)

void RemoveAllBodyElements ()

Static Public Member Functions

static BodyElementManager & Instance ()

Detailed Description

A central class for registering QTI body elements (i.e.

elements that have graphical representations).

Member Function Documentation

void ilog::qti::BodyElementManager::AddBodyElement (BodyElement::Ptr element)

Add a body element.

qti::BodyElement::Ptr ilog::qti::BodyElementManager::GetBodyElement (const Identifier & id) const

Get the body element with the given identifier.

bool ilog::qti::BodyElementManager::HasBodyElement (const Identifier & id) const

Is a body element with the given identifier registered?

static BodyElementManager& ilog::qti::BodyElementManager::Instance () [static]

Singleton accessor.

void ilog::qti::BodyElementManager::RemoveAllBodyElements ()

Remove all body elements.

59

void ilog::qti::BodyElementManager::RemoveBodyElement (const Identifier & id)

Remove the body element with the given identifier.

ilog::BorderInfo Class Reference Data object aggregating all border property information.

#include <border_property.h>

Public Member Functions

BorderInfo (BorderStyleFlags style=BDSTYLE_NONE, wxColour color=*wxBLACK, int

thickness=1, BorderSidesFlags sides=BDSIDES_ALL, const wxString skin=wxEmptyString)

BorderInfo & Color (wxColour color)

wxColour GetColor () const

BorderInfo & Sides (BorderSidesFlags flags)

BorderInfo & Sides (const wxString &sides)

BorderSidesFlags GetSides () const

wxString GetSidesString () const

BorderInfo & Skin (const wxString &skin)

wxString GetSkin () const

BorderInfo & Style (BorderStyleFlags flags)

BorderInfo & Style (const wxString &style)

BorderStyleFlags GetStyle () const

wxString GetStyleString () const

BorderInfo & Thickness (int thickness)

int GetThickness () const

Detailed Description

Data object aggregating all border property information.

Implements the 'named parameter' idiom -- most setter methods can be chained together for easier

property specification.

Constructor & Destructor Documentation

ilog::BorderInfo::BorderInfo (BorderStyleFlags style = BDSTYLE_NONE, wxColour color =

*wxBLACK, int thickness = 1, BorderSidesFlags sides = BDSIDES_ALL, const wxString

skin = wxEmptyString) [inline]

Member Function Documentation

BorderInfo& ilog::BorderInfo::Color (wxColour color) [inline]

Set border color.

60

wxColour ilog::BorderInfo::GetColor () const [inline]

Get border color.

BorderSidesFlags ilog::BorderInfo::GetSides () const [inline]

Get border side flags.

wxString ilog::BorderInfo::GetSidesString () const [inline]

Get border side flags in a whitespace-delimited string.

wxString ilog::BorderInfo::GetSkin () const [inline]

Get the border skin.

BorderStyleFlags ilog::BorderInfo::GetStyle () const [inline]

Get the border style.

wxString ilog::BorderInfo::GetStyleString () const [inline]

Get the border style as a string.

int ilog::BorderInfo::GetThickness () const [inline]

Get border thickness.

BorderInfo& ilog::BorderInfo::Sides (const wxString & sides) [inline]

Set border side flags with string.

Can set multiple flags with whitespace-delimited string.

BorderInfo& ilog::BorderInfo::Sides (BorderSidesFlags flags) [inline]

Set border side flags.

BorderInfo& ilog::BorderInfo::Skin (const wxString & skin) [inline]

Set the border skin.

BorderInfo& ilog::BorderInfo::Style (const wxString & style) [inline]

Set the border style from a string.

BorderInfo& ilog::BorderInfo::Style (BorderStyleFlags flags) [inline]

Set the border style.

BorderInfo& ilog::BorderInfo::Thickness (int thickness) [inline]

Set border thickness.

ilog::BorderProperty Class Reference A wxPGProperty subclass used to display the "border" settings of a Flash component.

#include <border_property.h>

61

Public Member Functions

BorderProperty (const wxString &label=wxPG_LABEL, const wxString &name=wxPG_LABEL,

const BorderInfo &init_settings=BorderInfo())

virtual ~BorderProperty ()

virtual void OnSetValue ()

virtual wxString GetValueAsString (int argFlags=0) const

Detailed Description

A wxPGProperty subclass used to display the "border" settings of a Flash component.

Constructor & Destructor Documentation

ilog::BorderProperty::BorderProperty (const wxString & label = wxPG_LABEL, const

wxString & name = wxPG_LABEL, const BorderInfo & init_settings = BorderInfo())

virtual ilog::BorderProperty::~BorderProperty () [virtual]

Member Function Documentation

virtual wxString ilog::BorderProperty::GetValueAsString (int argFlags = 0) const [virtual]

virtual void ilog::BorderProperty::OnSetValue () [virtual]

ilog::qti::Choice Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::Choice:

62

Public Types

typedef shared_ptr< Choice > Ptr

Public Member Functions

Identifier GetIdentifier () const

void SetIdentifier (const wxString &identifier)

Boolean IsFixed () const

void SetFixed (Boolean fixed)

Identifier GetTemplateIdentifier () const

void SetTemplateIdentifier (Identifier identifier)

ShowHide GetShowHide () const

void SetShowHide (ShowHide sh)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Protected Member Functions

Choice ()

Choice (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<Choice> ilog::qti::Choice::Ptr

Reimplemented from ilog::qti::BodyElement (p.55).

Reimplemented in ilog::qti::SimpleChoice (p.199), ilog::qti::AssociableChoice (p.49), and

ilog::qti::SimpleAssociableChoice (p.197).

63

Constructor & Destructor Documentation

ilog::qti::Choice::Choice () [protected]

ilog::qti::Choice::Choice (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::Choice::CreateFromXml (const wxXmlNode * root_node) [static]

Reimplemented in ilog::qti::AssociableChoice (p.49).

Identifier ilog::qti::Choice::GetIdentifier () const [inline]

ShowHide ilog::qti::Choice::GetShowHide () const [inline]

Identifier ilog::qti::Choice::GetTemplateIdentifier () const [inline]

void ilog::qti::Choice::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::BodyElement (p.57).

Reimplemented in ilog::qti::SimpleChoice (p.200), ilog::qti::AssociableChoice (p.49), and

ilog::qti::SimpleAssociableChoice (p.198).

Boolean ilog::qti::Choice::IsFixed () const [inline]

wxXmlNode* ilog::qti::Choice::Serialize () const [virtual]

Reimplemented from ilog::qti::BodyElement (p.57).

Reimplemented in ilog::qti::SimpleChoice (p.200), ilog::qti::AssociableChoice (p.50), and

ilog::qti::SimpleAssociableChoice (p.198).

void ilog::qti::Choice::SetFixed (Boolean fixed) [inline]

void ilog::qti::Choice::SetIdentifier (const wxString & identifier) [inline]

void ilog::qti::Choice::SetShowHide (ShowHide sh) [inline]

void ilog::qti::Choice::SetTemplateIdentifier (Identifier identifier) [inline]

ilog::qti::ChoiceInteraction Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::ChoiceInteraction:

64

Public Types

typedef shared_ptr< ChoiceInteraction > Ptr

Public Member Functions

bool IsInstantiable () const

wxString GetName () const

Boolean IsShuffle () const

void SetShuffle (Boolean shuffle)

Integer GetMaxChoices () const

void SetMaxChoices (Integer max_choices)

Integer GetMinChoices () const

void SetMinChoices (Integer min_choices)

wxString Instantiate (shared_ptr< As::FlashInterface > flash_interface, As::ComponentHandle

parent, int style=0)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Identifier response_identifier, Boolean shuffle=false, Integer max_choices=1,

Integer min_choices=0)

Protected Member Functions

ChoiceInteraction ()

ChoiceInteraction (Identifier response_identifier, Boolean shuffle=false, Integer max_choices=1,

Integer min_choices=0)

ChoiceInteraction (const wxXmlNode *root_node)

65

Member Typedef Documentation

typedef shared_ptr<ChoiceInteraction> ilog::qti::ChoiceInteraction::Ptr

Reimplemented from ilog::qti::BlockInteraction (p.53).

Constructor & Destructor Documentation

ilog::qti::ChoiceInteraction::ChoiceInteraction () [protected]

ilog::qti::ChoiceInteraction::ChoiceInteraction (Identifier response_identifier, Boolean

shuffle = false, Integer max_choices = 1, Integer min_choices = 0) [explicit, protected]

ilog::qti::ChoiceInteraction::ChoiceInteraction (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::ChoiceInteraction::Create (Identifier response_identifier, Boolean

shuffle = false, Integer max_choices = 1, Integer min_choices = 0) [static]

static Ptr ilog::qti::ChoiceInteraction::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::ChoiceInteraction::Create () [static]

Integer ilog::qti::ChoiceInteraction::GetMaxChoices () const [inline]

Integer ilog::qti::ChoiceInteraction::GetMinChoices () const [inline]

wxString ilog::qti::ChoiceInteraction::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::ChoiceInteraction::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::BlockInteraction (p.54).

wxString ilog::qti::ChoiceInteraction::Instantiate (shared_ptr< As::FlashInterface >

flash_interface, As::ComponentHandle parent, int style = 0) [virtual]

This function creates a tree of Flash graphical objects to which the BodyElement can be

mapped, and returns a mapping describing which graphical component corresponds to which

QTI component ID.

66

Implements ilog::qti::IInstantiable (p.123).

bool ilog::qti::ChoiceInteraction::IsInstantiable () const [inline, virtual]

This method should be overriden to return 'true' if the element can be instantiated as a

graphical component (i.e.

it is a non-abstract QTI element). Instantiable elements should also implement the

'IInstantiable' interface.

Reimplemented from ilog::qti::Element (p.95).

Boolean ilog::qti::ChoiceInteraction::IsShuffle () const [inline]

wxXmlNode* ilog::qti::ChoiceInteraction::Serialize () const [virtual]

Reimplemented from ilog::qti::BlockInteraction (p.54).

void ilog::qti::ChoiceInteraction::SetMaxChoices (Integer max_choices) [inline]

void ilog::qti::ChoiceInteraction::SetMinChoices (Integer min_choices) [inline]

void ilog::qti::ChoiceInteraction::SetShuffle (Boolean shuffle) [inline]

ilog::ChoiceInteractionWizard Class Reference The wizard for creating ChoiceInteraction instances.

#include <choice_interaction_wizard.h>

Public Member Functions

ChoiceInteractionWizard (wxFrame *parent_frame)

wxWizardPage * GetFirstPage () const

void OnWizardFinished (wxWizardEvent &evt)

void OnWizardPageChanged (wxWizardEvent &evt)

qti::ChoiceInteraction::Ptr GetChoiceInteraction () const

qti::ResponseDeclaration::Ptr GetResponseDeclaration () const

qti::ResponseProcessing::Ptr GetResponseProcessing () const

Detailed Description

The wizard for creating ChoiceInteraction instances.

Constructor & Destructor Documentation

ilog::ChoiceInteractionWizard::ChoiceInteractionWizard (wxFrame * parent_frame)

67

Member Function Documentation

qti::ChoiceInteraction::Ptr ilog::ChoiceInteractionWizard::GetChoiceInteraction () const [inline]

Accessor for generated ChoiceInteraction.

Returns NULL unless wizard finished.

wxWizardPage* ilog::ChoiceInteractionWizard::GetFirstPage () const

qti::ResponseDeclaration::Ptr ilog::ChoiceInteractionWizard::GetResponseDeclaration ()

const [inline]

Accessor for generated ResponseDeclaration.

Returns NULL unless wizard finished.

qti::ResponseProcessing::Ptr ilog::ChoiceInteractionWizard::GetResponseProcessing ()

const [inline]

Accessor for generated ResponseProcessing.

Returns NULL unless wizard finished.

void ilog::ChoiceInteractionWizard::OnWizardFinished (wxWizardEvent & evt)

void ilog::ChoiceInteractionWizard::OnWizardPageChanged (wxWizardEvent & evt)

ilog::ChoiceInteractionWizardPage_Cardinality Class Reference The 'cardinality' page of the wizard.

#include <choice_interaction_wizard.h>

Public Member Functions

ChoiceInteractionWizardPage_Cardinality (wxWizard *parent)

virtual wxWizardPage * GetNext () const

virtual wxWizardPage * GetPrev () const

void OnCardinalityChanged (wxCommandEvent &evt)

void OnChoicesChanged (wxCommandEvent &evt)

Friends

class ChoiceInteractionWizard

Detailed Description

The 'cardinality' page of the wizard.

68

Constructor & Destructor Documentation

ilog::ChoiceInteractionWizardPage_Cardinality::ChoiceInteractionWizardPage_Cardinality (wxWizard * parent)

Member Function Documentation

virtual wxWizardPage* ilog::ChoiceInteractionWizardPage_Cardinality::GetNext () const [virtual]

virtual wxWizardPage* ilog::ChoiceInteractionWizardPage_Cardinality::GetPrev () const [virtual]

void ilog::ChoiceInteractionWizardPage_Cardinality::OnCardinalityChanged (wxCommandEvent & evt)

void ilog::ChoiceInteractionWizardPage_Cardinality::OnChoicesChanged (wxCommandEvent & evt)

Friends And Related Function Documentation

friend class ChoiceInteractionWizard [friend]

ilog::ChoiceInteractionWizardPage_Responses Class Reference The 'responses' page of the wizard.

#include <choice_interaction_wizard.h>

Public Types

typedef int CardinalityFlag

Public Member Functions

ChoiceInteractionWizardPage_Responses (wxWizard *parent)

CardinalityFlag GetCardinality () const

void SetCardinality (CardinalityFlag card)

int GetChoiceCount () const

void SetChoiceCount (int count)

Static Public Attributes

static const CardinalityFlag CARD_UNSPECIFIED = 0

static const CardinalityFlag CARD_SINGLE = 1

static const CardinalityFlag CARD_MULTIPLE = 2

69

Friends

class ChoiceInteractionWizard

Detailed Description

The 'responses' page of the wizard.

Member Typedef Documentation

typedef int ilog::ChoiceInteractionWizardPage_Responses::CardinalityFlag

Constructor & Destructor Documentation

ilog::ChoiceInteractionWizardPage_Responses::ChoiceInteractionWizardPage_Responses (wxWizard * parent)

Member Function Documentation

CardinalityFlag ilog::ChoiceInteractionWizardPage_Responses::GetCardinality () const [inline]

int ilog::ChoiceInteractionWizardPage_Responses::GetChoiceCount () const [inline]

void ilog::ChoiceInteractionWizardPage_Responses::SetCardinality (CardinalityFlag card)

void ilog::ChoiceInteractionWizardPage_Responses::SetChoiceCount (int count)

Friends And Related Function Documentation

friend class ChoiceInteractionWizard [friend]

Member Data Documentation

const CardinalityFlag ilog::ChoiceInteractionWizardPage_Responses::CARD_MULTIPLE =

2 [static]

const CardinalityFlag ilog::ChoiceInteractionWizardPage_Responses::CARD_SINGLE = 1 [static]

const CardinalityFlag ilog::ChoiceInteractionWizardPage_Responses::CARD_UNSPECIFIED = 0 [static]

70

ilog::ClipboardCloser Class Reference Guard object to ensure wxClipboard is properly release.

#include <clipboard_closer.h>

Public Member Functions

ClipboardCloser (wxClipboard *clip_board)

~ClipboardCloser ()

Detailed Description

Guard object to ensure wxClipboard is properly release.

Constructor & Destructor Documentation

ilog::ClipboardCloser::ClipboardCloser (wxClipboard * clip_board) [inline, explicit]

ilog::ClipboardCloser::~ClipboardCloser () [inline]

ilog::ColoredFont Class Reference Aggregates a wxFont and a wxColour object.

#include <colored_font.h>

Public Member Functions

ColoredFont ()

ColoredFont (const wxColour &c, const wxFont f=wxFont())

ColoredFont (const wxFont &f, const wxColour &c=*wxBLACK)

wxColour GetColor () const

const wxColour & GetColorRef () const

wxFont GetFont () const

const wxFont & GetFontRef () const

void SetColor (const wxColour &c)

void SetFont (const wxFont &f)

bool operator== (const ColoredFont &that) const

Detailed Description

Aggregates a wxFont and a wxColour object.

71

Constructor & Destructor Documentation

ilog::ColoredFont::ColoredFont () [inline]

ilog::ColoredFont::ColoredFont (const wxColour & c, const wxFont f = wxFont()) [inline]

ilog::ColoredFont::ColoredFont (const wxFont & f, const wxColour & c = *wxBLACK) [inline]

Member Function Documentation

wxColour ilog::ColoredFont::GetColor () const [inline]

const wxColour& ilog::ColoredFont::GetColorRef () const [inline]

wxFont ilog::ColoredFont::GetFont () const [inline]

const wxFont& ilog::ColoredFont::GetFontRef () const [inline]

bool ilog::ColoredFont::operator== (const ColoredFont & that) const [inline]

void ilog::ColoredFont::SetColor (const wxColour & c) [inline]

void ilog::ColoredFont::SetFont (const wxFont & f) [inline]

ilog::As::ComponentDataObject Class Reference A wxDataObject subclass which represents Actionscript graphical components when they are

stored in the clipboard.

#include <flash_interface.h>

Public Member Functions

ComponentDataObject ()

ComponentDataObject (FlashInterface::Ptr flash_interface, ComponentHandle h_comp)

ComponentInfo GetComponentInfo () const

Detailed Description

A wxDataObject subclass which represents Actionscript graphical components when they are

stored in the clipboard.

72

Constructor & Destructor Documentation

ilog::As::ComponentDataObject::ComponentDataObject ()

ilog::As::ComponentDataObject::ComponentDataObject (FlashInterface::Ptr flash_interface, ComponentHandle h_comp)

Member Function Documentation

ComponentInfo ilog::As::ComponentDataObject::GetComponentInfo () const

ilog::As::ComponentExtraProperties Class Reference A class for storing and manipulating the properties of a component that are managed on the C++

side of the application rather than the Flash side.

#include <component_extra_properties.h>

Public Member Functions

ComponentExtraProperties ()

bool HasAlias () const

wxString GetAlias () const

void SetAlias (const wxString alias)

bool IsDragable () const

void AddDragableFormat (const wxString &format)

wxString GetDragableData () const

std::vector< wxString > GetDragableFormats () const

bool HasDragableFormat (const wxString &format) const

void RemoveDragableFormat (const wxString &format)

void RemoveAllDragableFormats ()

void SetDragableData (const wxString &data)

bool IsDropTarget () const

void AddDropTargetFormat (const wxString &format)

std::vector< wxString > GetDropTargetFormats () const

bool HasDropTargetFormat (const wxString &format) const

void RemoveDropTargetFormat (const wxString &format)

void RemoveAllDropTargetFormats ()

bool IsEventDispatcher () const

void AddEvent (const wxString &type, const EventAction &action)

std::vector< EventAction > GetAllEventActions ()

EventAction GetEventAction (const wxString &type)

bool HasEvent (const wxString &type)

void RemoveEvent (const wxString &type)

void RemoveAllEvents ()

void MapToQtiElement (qti::Identifier member_id)

bool IsMappedToQtiElement ()

bool IsMappedToQtiElement (qti::Identifier member_id)

std::vector< qti::Identifier > GetAllMappedQtiElements () const

73

void RemoveMappingToQtiElement (qti::Identifier member_id)

Static Public Attributes

static const wxString DRAG_DROP_ANY_FORMAT

Detailed Description

A class for storing and manipulating the properties of a component that are managed on the C++

side of the application rather than the Flash side.

Constructor & Destructor Documentation

ilog::As::ComponentExtraProperties::ComponentExtraProperties () [inline]

Member Function Documentation

void ilog::As::ComponentExtraProperties::AddDragableFormat (const wxString & format) [inline]

Make the component a dragable format that is accepted by drop targets with the same format.

void ilog::As::ComponentExtraProperties::AddDropTargetFormat (const wxString &

format) [inline]

Add a format that the drop target will accept.

void ilog::As::ComponentExtraProperties::AddEvent (const wxString & type, const

EventAction & action) [inline]

Add an event to be dispatched by this component.

Parameters:

type The type of the event

action The action to take when the event is triggered

wxString ilog::As::ComponentExtraProperties::GetAlias () const [inline]

Get the alternative name for the component.

std::vector<EventAction> ilog::As::ComponentExtraProperties::GetAllEventActions () [inline]

Get all event actions associated with this component.

std::vector<qti::Identifier>

ilog::As::ComponentExtraProperties::GetAllMappedQtiElements () const [inline]

Get all QTI elements associated with this component.

wxString ilog::As::ComponentExtraProperties::GetDragableData () const [inline]

Get the data that the component passes to a drop target when it is dropped.

74

std::vector<wxString> ilog::As::ComponentExtraProperties::GetDragableFormats () const [inline]

Get all of the valid drag formats for this dragable component.

std::vector<wxString> ilog::As::ComponentExtraProperties::GetDropTargetFormats () const [inline]

Get all formats that this drop target will accept.

EventAction ilog::As::ComponentExtraProperties::GetEventAction (const wxString & type) [inline]

Get the event action for the given event type.

bool ilog::As::ComponentExtraProperties::HasAlias () const [inline]

Does the component have an alternative name?

bool ilog::As::ComponentExtraProperties::HasDragableFormat (const wxString & format)

const [inline]

Does the component have the specified drag format?

bool ilog::As::ComponentExtraProperties::HasDropTargetFormat (const wxString &

format) const [inline]

Does the drop target have the given format?

bool ilog::As::ComponentExtraProperties::HasEvent (const wxString & type) [inline]

Does the component respond to the given event?

bool ilog::As::ComponentExtraProperties::IsDragable () const [inline]

Is the component a dragable component?

bool ilog::As::ComponentExtraProperties::IsDropTarget () const [inline]

Is this component a drop target?

bool ilog::As::ComponentExtraProperties::IsEventDispatcher () const [inline]

Is the component an event dispatcher?

bool ilog::As::ComponentExtraProperties::IsMappedToQtiElement (qti::Identifier member_id) [inline]

Does this component correspond to the given QTI element?

bool ilog::As::ComponentExtraProperties::IsMappedToQtiElement () [inline]

Does this component correspond to any QTI elements?

void ilog::As::ComponentExtraProperties::MapToQtiElement (qti::Identifier member_id) [inline]

Indicate that this component corresponds to a given QTI element.

void ilog::As::ComponentExtraProperties::RemoveAllDragableFormats () [inline]

Remove all drag formats, making the component no longer dragable.

75

void ilog::As::ComponentExtraProperties::RemoveAllDropTargetFormats () [inline]

Remove all drop formats -- the component is no longer a drop target.

void ilog::As::ComponentExtraProperties::RemoveAllEvents () [inline]

Remove all event handlers.

void ilog::As::ComponentExtraProperties::RemoveDragableFormat (const wxString &

format) [inline]

Remove the given drag format.

void ilog::As::ComponentExtraProperties::RemoveDropTargetFormat (const wxString & format) [inline]

Remove the given drop target format for this drop target.

void ilog::As::ComponentExtraProperties::RemoveEvent (const wxString & type) [inline]

Remove the event handler for the given event.

void ilog::As::ComponentExtraProperties::RemoveMappingToQtiElement (qti::Identifier

member_id) [inline]

Indicate that the component no longer corresponds to the given QTI element.

void ilog::As::ComponentExtraProperties::SetAlias (const wxString alias) [inline]

Set the alternative name for the component.

void ilog::As::ComponentExtraProperties::SetDragableData (const wxString & data) [inline]

Set the data that will be passed to a drop target when the component is dropped.

Member Data Documentation

const wxString ilog::As::ComponentExtraProperties::DRAG_DROP_ANY_FORMAT [static]

ilog::As::ComponentHandle Class Reference A handle class which provides a link to an Actionscript graphical component managed by the

Flash portion of the editor.

#include <component_handle.h>

Public Types

typedef As::UInt IdType

Public Member Functions

ComponentHandle ()

76

ComponentHandle (IdType id)

ComponentHandle (const ComponentHandle &that)

~ComponentHandle ()

IdType GetId () const

void Invalidate ()

ComponentHandle & operator= (const ComponentHandle &that)

bool operator== (const ComponentHandle &rhs) const

bool operator!= (const ComponentHandle &rhs) const

bool operator< (const ComponentHandle &that) const

operator bool_type () const

Static Public Attributes

static const IdType INVALID = 0

Friends

class FlashInterface

size_t hash_value (const ComponentHandle &handle)

Detailed Description

A handle class which provides a link to an Actionscript graphical component managed by the

Flash portion of the editor.

All copies of a handle reference the same component, and all will be invalidated if one is

invalidated.

Member Typedef Documentation

typedef As::UInt ilog::As::ComponentHandle::IdType

Constructor & Destructor Documentation

ilog::As::ComponentHandle::ComponentHandle () [inline]

ilog::As::ComponentHandle::ComponentHandle (IdType id) [inline, explicit]

ilog::As::ComponentHandle::ComponentHandle (const ComponentHandle & that) [inline]

ilog::As::ComponentHandle::~ComponentHandle () [inline]

Member Function Documentation

IdType ilog::As::ComponentHandle::GetId () const [inline]

Get the component's numeric ID.

Don't use this unless you are communicating directly with the Flash side.

77

void ilog::As::ComponentHandle::Invalidate () [inline]

Invalidate this handle and all copies (i.e.

assert( handle ) will fail).

ilog::As::ComponentHandle::operator bool_type () const [inline]

Safe implicit boolean test.

bool ilog::As::ComponentHandle::operator!= (const ComponentHandle & rhs) const [inline]

bool ilog::As::ComponentHandle::operator< (const ComponentHandle & that) const [inline]

So handles can be used as keys in std::map.

ComponentHandle& ilog::As::ComponentHandle::operator= (const ComponentHandle &

that) [inline]

bool ilog::As::ComponentHandle::operator== (const ComponentHandle & rhs) const [inline]

Returns true iff both handles reference the same component.

Friends And Related Function Documentation

friend class FlashInterface [friend]

size_t hash_value (const ComponentHandle & handle) [friend]

Hash function for ComponentHandle.

Member Data Documentation

const IdType ilog::As::ComponentHandle::INVALID = 0 [static]

ilog::As::ComponentInfo Struct Reference A data structure describing the properties of an Actionscript graphical component.

#include <flash_interface.h>

Public Member Functions

ComponentInfo ()

ComponentInfo (const wxString &type, Object properties)

ComponentInfo (const ComponentInfo &that)

~ComponentInfo ()

ComponentInfo & operator= (const ComponentInfo &that)

78

Public Attributes

wxString Type

Object Properties

Detailed Description

A data structure describing the properties of an Actionscript graphical component.

Constructor & Destructor Documentation

ilog::As::ComponentInfo::ComponentInfo () [inline]

ilog::As::ComponentInfo::ComponentInfo (const wxString & type, Object properties) [inline]

ilog::As::ComponentInfo::ComponentInfo (const ComponentInfo & that) [inline]

ilog::As::ComponentInfo::~ComponentInfo () [inline]

Member Function Documentation

ComponentInfo& ilog::As::ComponentInfo::operator= (const ComponentInfo & that) [inline]

Member Data Documentation

Object ilog::As::ComponentInfo::Properties

wxString ilog::As::ComponentInfo::Type

ilog::ComponentPalette Class Reference A control for creating Flash graphical components.

#include <component_palette.h>

Public Member Functions

ComponentPalette (wxWindow *parent, wxWindowID id, As::FlashInterface::Ptr flash_interface,

wxCommandProcessor *cmd_proc, const wxPoint &pos=wxDefaultPosition, const wxSize

&size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr)

void CreateButton (wxCommandEvent &evt)

void CreateRadioButton (wxCommandEvent &evt)

void CreateCheckBox (wxCommandEvent &evt)

void CreateComboBox (wxCommandEvent &evt)

79

void CreateTextArea (wxCommandEvent &evt)

void CreateBox (wxCommandEvent &evt)

void CreateCanvas (wxCommandEvent &evt)

void CreateItemBank (wxCommandEvent &evt)

Detailed Description

A control for creating Flash graphical components.

Constructor & Destructor Documentation

ilog::ComponentPalette::ComponentPalette (wxWindow * parent, wxWindowID id, As::FlashInterface::Ptr flash_interface, wxCommandProcessor * cmd_proc, const

wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long

style = 0, const wxString & name = wxPanelNameStr)

Member Function Documentation

void ilog::ComponentPalette::CreateBox (wxCommandEvent & evt)

void ilog::ComponentPalette::CreateButton (wxCommandEvent & evt)

void ilog::ComponentPalette::CreateCanvas (wxCommandEvent & evt)

void ilog::ComponentPalette::CreateCheckBox (wxCommandEvent & evt)

void ilog::ComponentPalette::CreateComboBox (wxCommandEvent & evt)

void ilog::ComponentPalette::CreateItemBank (wxCommandEvent & evt)

void ilog::ComponentPalette::CreateRadioButton (wxCommandEvent & evt)

void ilog::ComponentPalette::CreateTextArea (wxCommandEvent & evt)

ilog::ComponentsPanel Class Reference A panel that displays a tree view of the components in the project.

#include <organizer_notebook.h>

Public Member Functions

ComponentsPanel (wxWindow *parent, wxWindowID id, As::FlashInterface::Ptr flash_interface,

const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const

wxString &name=wxPanelNameStr)

void OnTreeItemActivated (wxTreeEvent &evt)

void SelectComponent (As::ComponentHandle h_comp, bool select=true)

80

void Synchronize (As::ComponentHandle h_root=As::ComponentHandle(), bool recursive=true)

Detailed Description

A panel that displays a tree view of the components in the project.

Not currently functional.

Constructor & Destructor Documentation

ilog::ComponentsPanel::ComponentsPanel (wxWindow * parent, wxWindowID id, As::FlashInterface::Ptr flash_interface, const wxPoint & pos = wxDefaultPosition,

const wxSize & size = wxDefaultSize, long style = 0, const wxString & name =

wxPanelNameStr)

Member Function Documentation

void ilog::ComponentsPanel::OnTreeItemActivated (wxTreeEvent & evt)

void ilog::ComponentsPanel::SelectComponent (As::ComponentHandle h_comp, bool

select = true)

Tell the panel that the selection status of the given component has changed.

void ilog::ComponentsPanel::Synchronize (As::ComponentHandle h_root =

As::ComponentHandle(), bool recursive = true)

Update the status of the root component.

ilog::qti::Correct Class Reference #include <expression.h>

Inheritance diagram for ilog::qti::Correct:

81

Public Types

typedef shared_ptr< Correct > Ptr

Public Member Functions

wxString GetName () const

Identifier GetIdentifier () const

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Identifier id)

Protected Member Functions

Correct ()

Correct (Identifier id)

Correct (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<Correct> ilog::qti::Correct::Ptr

Reimplemented from ilog::qti::Expression (p.100).

Constructor & Destructor Documentation

ilog::qti::Correct::Correct () [protected]

ilog::qti::Correct::Correct (Identifier id) [explicit, protected]

ilog::qti::Correct::Correct (const wxXmlNode * root_node) [explicit, protected]

82

Member Function Documentation

static Ptr ilog::qti::Correct::Create (Identifier id) [static]

static Ptr ilog::qti::Correct::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::Correct::Create () [static]

Identifier ilog::qti::Correct::GetIdentifier () const [inline]

wxString ilog::qti::Correct::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::Correct::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::Correct::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

ilog::qti::CorrectResponse Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::CorrectResponse:

Public Types

typedef shared_ptr< CorrectResponse > Ptr

Public Member Functions

wxString GetName () const

String GetInterpretation () const

void SetInterpretation (String interpretation)

void AddValue (const ValueType &v)

83

std::vector< ValueType > GetValues () const

bool HasValue (const ValueType &v) const

void RemoveValue (const ValueType &v)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create (String interpretation=String())

static Ptr Create (const wxXmlNode *root_node)

template<typename ForwardItr > static Ptr Create (ForwardItr first, ForwardItr last)

Protected Member Functions

CorrectResponse (String interpretation=String())

template<typename ForwardItr > CorrectResponse (ForwardItr first, ForwardItr last)

CorrectResponse (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<CorrectResponse> ilog::qti::CorrectResponse::Ptr

Reimplemented from ilog::qti::Element (p.94).

Constructor & Destructor Documentation

ilog::qti::CorrectResponse::CorrectResponse (String interpretation = String()) [explicit, protected]

template<typename ForwardItr > ilog::qti::CorrectResponse::CorrectResponse (ForwardItr

first, ForwardItr last) [inline, protected]

ilog::qti::CorrectResponse::CorrectResponse (const wxXmlNode * root_node) [explicit, protected]

84

Member Function Documentation

void ilog::qti::CorrectResponse::AddValue (const ValueType & v) [inline]

template<typename ForwardItr > static Ptr ilog::qti::CorrectResponse::Create (ForwardItr

first, ForwardItr last) [inline, static]

static Ptr ilog::qti::CorrectResponse::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::CorrectResponse::Create (String interpretation = String()) [static]

String ilog::qti::CorrectResponse::GetInterpretation () const [inline]

wxString ilog::qti::CorrectResponse::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

std::vector<ValueType> ilog::qti::CorrectResponse::GetValues () const [inline]

bool ilog::qti::CorrectResponse::HasValue (const ValueType & v) const [inline]

void ilog::qti::CorrectResponse::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

void ilog::qti::CorrectResponse::RemoveValue (const ValueType & v) [inline]

wxXmlNode* ilog::qti::CorrectResponse::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

void ilog::qti::CorrectResponse::SetInterpretation (String interpretation) [inline]

ilog::CreateComponentCommand Class Reference A command that creates an Actionscript component.

#include <component_command.h>

Public Member Functions

CreateComponentCommand (const wxString &name, As::FlashInterface::Ptr flash_interface,

As::ComponentInfo info, As::ComponentHandle parent)

CreateComponentCommand (const wxString &name, As::FlashInterface::Ptr flash_interface,

const wxString &type, As::ComponentHandle parent)

85

~CreateComponentCommand ()

bool Do ()

bool Undo ()

Detailed Description

A command that creates an Actionscript component.

This command is used to implement both 'Add' and 'Paste' operations.

Constructor & Destructor Documentation

ilog::CreateComponentCommand::CreateComponentCommand (const wxString & name, As::FlashInterface::Ptr flash_interface, As::ComponentInfo info, As::ComponentHandle parent)

Constructor.

The command will create a component with type and properties specified by the 'info' object.

ilog::CreateComponentCommand::CreateComponentCommand (const wxString & name, As::FlashInterface::Ptr flash_interface, const wxString & type, As::ComponentHandle parent)

Constructor.

The command will create a component of the specified type with default property values.

ilog::CreateComponentCommand::~CreateComponentCommand ()

Member Function Documentation

bool ilog::CreateComponentCommand::Do ()

bool ilog::CreateComponentCommand::Undo ()

ilog::File::DirectoryEnumerator Class Reference wxDirTraverser subclass that only enumerates directories.

#include <file_util.h>

Public Member Functions

DirectoryEnumerator (wxArrayString &files)

virtual wxDirTraverseResult OnFile (const wxString &filename)

virtual wxDirTraverseResult OnDir (const wxString &dirname)

86

Detailed Description

wxDirTraverser subclass that only enumerates directories.

Constructor & Destructor Documentation

ilog::File::DirectoryEnumerator::DirectoryEnumerator (wxArrayString & files) [inline]

Member Function Documentation

virtual wxDirTraverseResult ilog::File::DirectoryEnumerator::OnDir (const wxString &

dirname) [inline, virtual]

virtual wxDirTraverseResult ilog::File::DirectoryEnumerator::OnFile (const wxString &

filename) [inline, virtual]

ilog::DragablePropertiesPanel Class Reference #include <dragable_properties_panel.h>

Inheritance diagram for ilog::DragablePropertiesPanel:

Public Member Functions

DragablePropertiesPanel (wxWindow *parent, wxWindowID id, As::FlashInterface::Ptr

flash_interface)

~DragablePropertiesPanel ()

void DisplayPropertiesFor (As::ComponentHandle h_comp)

void OnDragableStatusChange (wxCommandEvent &evt)

Detailed Description

Deprecated:

87

Constructor & Destructor Documentation

ilog::DragablePropertiesPanel::DragablePropertiesPanel (wxWindow * parent, wxWindowID id, As::FlashInterface::Ptr flash_interface)

ilog::DragablePropertiesPanel::~DragablePropertiesPanel ()

Member Function Documentation

void ilog::DragablePropertiesPanel::DisplayPropertiesFor (As::ComponentHandle

h_comp) [virtual]

Display all properties for the given component that the control supports.

Implements ilog::IPropertiesDisplayer (p.132).

void ilog::DragablePropertiesPanel::OnDragableStatusChange (wxCommandEvent & evt)

ilog::DropTargetPropertiesPanel Class Reference #include <drop_target_properties_panel.h>

Inheritance diagram for ilog::DropTargetPropertiesPanel:

Public Member Functions

DropTargetPropertiesPanel (wxWindow *parent, wxWindowID id, As::FlashInterface::Ptr

flash_interface)

~DropTargetPropertiesPanel ()

void DisplayPropertiesFor (As::ComponentHandle h_comp)

void OnDropTargetStatusChange (wxCommandEvent &evt)

Detailed Description

Deprecated:

88

Constructor & Destructor Documentation

ilog::DropTargetPropertiesPanel::DropTargetPropertiesPanel (wxWindow * parent, wxWindowID id, As::FlashInterface::Ptr flash_interface)

ilog::DropTargetPropertiesPanel::~DropTargetPropertiesPanel ()

Member Function Documentation

void ilog::DropTargetPropertiesPanel::DisplayPropertiesFor (As::ComponentHandle

h_comp) [virtual]

Display all properties for the given component that the control supports.

Implements ilog::IPropertiesDisplayer (p.132).

void ilog::DropTargetPropertiesPanel::OnDropTargetStatusChange (wxCommandEvent & evt)

ilog::EditorDocument Class Reference wxDocument subclass for the main IFE 'document'

#include <editor_document.h>

Public Member Functions

EditorDocument ()

~EditorDocument ()

virtual bool OnCloseDocument ()

virtual bool OnNewDocument ()

virtual bool OnOpenDocument (const wxString &filename)

virtual bool OnSaveDocument (const wxString &filename)

Detailed Description

wxDocument subclass for the main IFE 'document'

Constructor & Destructor Documentation

ilog::EditorDocument::EditorDocument ()

ilog::EditorDocument::~EditorDocument ()

89

Member Function Documentation

virtual bool ilog::EditorDocument::OnCloseDocument () [virtual]

virtual bool ilog::EditorDocument::OnNewDocument () [virtual]

virtual bool ilog::EditorDocument::OnOpenDocument (const wxString & filename) [virtual]

virtual bool ilog::EditorDocument::OnSaveDocument (const wxString & filename) [virtual]

ilog::EditorPanel Class Reference The central panel containing the Flash slide editor.

#include <editor_panel.h>

Public Member Functions

EditorPanel (wxWindow *parent, wxWindowID id, As::FlashInterfaceReadyHandler ready_handler,

const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const

wxString &name=wxPanelNameStr)

~EditorPanel ()

void OnContextMenu (wxContextMenuEvent &evt)

void OnContextMenuBringToFront (wxCommandEvent &evt)

void OnContextMenuCopy (wxCommandEvent &evt)

void OnContextMenuCut (wxCommandEvent &evt)

void OnContextMenuDelete (wxCommandEvent &evt)

void OnContextMenuDeleteInteraction (wxCommandEvent &evt)

void OnContextMenuMoveBack (wxCommandEvent &evt)

void OnContextMenuMoveForward (wxCommandEvent &evt)

void OnContextMenuPaste (wxCommandEvent &evt)

void OnContextMenuProperties (wxCommandEvent &evt)

void OnContextMenuSendToBack (wxCommandEvent &evt)

void OnContextInsertButton (wxCommandEvent &evt)

void OnContextInsertCheckBox (wxCommandEvent &evt)

void OnContextInsertComboBox (wxCommandEvent &evt)

void OnContextInsertContainer_BoxLayout (wxCommandEvent &evt)

void OnContextInsertContainer_Canvas (wxCommandEvent &evt)

void OnContextInsertContainer_TileLayout (wxCommandEvent &evt)

void OnContextInsertImage (wxCommandEvent &evt)

void OnContextInsertRadioButton (wxCommandEvent &evt)

void OnContextInsertText (wxCommandEvent &evt)

void OnContextInsertTextArea (wxCommandEvent &evt)

void OnContextInsertInteraction (wxCommandEvent &evt)

void SetCommandProcessor (wxCommandProcessor *cmd_proc)

As::FlashInterface::Ptr GetFlashInterface ()

90

Detailed Description

The central panel containing the Flash slide editor.

Constructor & Destructor Documentation

ilog::EditorPanel::EditorPanel (wxWindow * parent, wxWindowID id, As::FlashInterfaceReadyHandler ready_handler, const wxPoint & pos =

wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = 0, const

wxString & name = wxPanelNameStr)

Constructor.

See wxPanel documentation for the meaning of parameters.

Parameters:

f The callback function to notify when the Actionscript interface is ready to receive commands.

ilog::EditorPanel::~EditorPanel ()

Member Function Documentation

As::FlashInterface::Ptr ilog::EditorPanel::GetFlashInterface () [inline]

Get the FlashInterface associated with the editor panel.

91

void ilog::EditorPanel::OnContextInsertButton (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextInsertCheckBox (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextInsertComboBox (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextInsertContainer_BoxLayout (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextInsertContainer_Canvas (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextInsertContainer_TileLayout (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextInsertImage (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextInsertInteraction (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextInsertRadioButton (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextInsertText (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextInsertTextArea (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextMenu (wxContextMenuEvent & evt)

void ilog::EditorPanel::OnContextMenuBringToFront (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextMenuCopy (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextMenuCut (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextMenuDelete (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextMenuDeleteInteraction (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextMenuMoveBack (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextMenuMoveForward (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextMenuPaste (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextMenuProperties (wxCommandEvent & evt)

void ilog::EditorPanel::OnContextMenuSendToBack (wxCommandEvent & evt)

void ilog::EditorPanel::SetCommandProcessor (wxCommandProcessor * cmd_proc) [inline]

Sets the panel's internal pointer to reference the command processor intance provided.

The command processor is initialized after the editor panel, but the Flash interface needs a

pointer to it, so this method must be called as soon as the command processor is available to

update the Flash interface's reference.

92

ilog::EditorView Class Reference wxView subclass for the main 'editor' view.

#include <editor_view.h>

Public Member Functions

EditorView ()

~EditorView ()

bool OnCreate (wxDocument *doc, long flags)

void OnDraw (wxDC *dc)

void OnUpdate (wxView *sender, wxObject *hint=(wxObject *) NULL)

bool OnClose (bool deleteWindow=true)

As::FlashInterface::Ptr GetFlashInterface ()

Detailed Description

wxView subclass for the main 'editor' view.

Constructor & Destructor Documentation

ilog::EditorView::EditorView ()

ilog::EditorView::~EditorView ()

Member Function Documentation

As::FlashInterface::Ptr ilog::EditorView::GetFlashInterface () [inline]

bool ilog::EditorView::OnClose (bool deleteWindow = true)

bool ilog::EditorView::OnCreate (wxDocument * doc, long flags)

void ilog::EditorView::OnDraw (wxDC * dc)

void ilog::EditorView::OnUpdate (wxView * sender, wxObject * hint = (wxObject *)

NULL)

ilog::qti::Element Class Reference The root of the QTI XML element hierarchy.

#include <base.h>

Inheritance diagram for ilog::qti::Element:

93

94

Public Types

typedef shared_ptr< Element > Ptr

Public Member Functions

virtual ~Element ()

virtual wxString GetName () const =0

std::vector< Element::Ptr > GetChildren () const

Element::Ptr GetDeepestAncestorOfType (const wxString &type)

bool HasAncestorOfType (const wxString &type)

Element::Ptr GetParent () const

void SetParent (Element::Ptr parent)

virtual bool IsInstantiable () const

virtual bool IsValid () const

virtual wxXmlNode * Serialize () const

Protected Member Functions

Element ()

void AddChild (Element::Ptr child)

void RemoveChild (Element::Ptr child)

Detailed Description

The root of the QTI XML element hierarchy.

Member Typedef Documentation

typedef shared_ptr<Element> ilog::qti::Element::Ptr

Reimplemented from ilog::qti::ISerializable (p.135).

Reimplemented in ilog::qti::BodyElement (p.55), ilog::qti::Interaction (p.128),

ilog::qti::ObjectFlow (p.166), ilog::qti::Flow (p.108), ilog::qti::FlowStatic (p.110), ilog::qti::Inline

(p.125), ilog::qti::InlineStatic (p.126), ilog::qti::Prompt (p.173), ilog::qti::SimpleInline (p.201),

ilog::qti::Block (p.52), ilog::qti::BlockInteraction (p.53), ilog::qti::TextRun (p.209),

ilog::qti::Span (p.206), ilog::qti::Choice (p.62), ilog::qti::SimpleChoice (p.199),

ilog::qti::AssociableChoice (p.49), ilog::qti::SimpleAssociableChoice (p.197),

ilog::qti::SimpleMatchSet (p.203), ilog::qti::ChoiceInteraction (p.65), ilog::qti::MatchInteraction

(p.148), ilog::qti::VariableDeclaration (p.216), ilog::qti::CorrectResponse (p.83),

ilog::qti::Mapping (p.141), ilog::qti::ResponseDeclaration (p.183), ilog::qti::ItemBody (p.138),

ilog::qti::AssessmentItem (p.45), ilog::qti::Expression (p.100), ilog::qti::BaseValue (p.51),

ilog::qti::Correct (p.81), ilog::qti::IsNull (p.137), ilog::qti::MapResponse (p.144),

ilog::qti::Match (p.145), ilog::qti::Variable (p.214), ilog::qti::OutcomeRule (p.169),

ilog::qti::ResponseRule (p.192), ilog::qti::ResponseIf (p.188), ilog::qti::ResponseElseIf (p.187),

ilog::qti::ResponseElse (p.185), ilog::qti::ResponseCondition (p.181), ilog::qti::SetOutcomeValue

(p.194), and ilog::qti::ResponseProcessing (p.190).

95

Constructor & Destructor Documentation

virtual ilog::qti::Element::~Element () [inline, virtual]

ilog::qti::Element::Element () [inline, protected]

Member Function Documentation

void ilog::qti::Element::AddChild (Element::Ptr child) [inline, protected]

std::vector<Element::Ptr> ilog::qti::Element::GetChildren () const [inline]

Get all child elements of this element.

Element::Ptr ilog::qti::Element::GetDeepestAncestorOfType (const wxString & type) [inline]

Get the deepest (i.e.

closest) ancestor node of the given type.

virtual wxString ilog::qti::Element::GetName () const [pure virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implemented in ilog::qti::Prompt (p.173), ilog::qti::TextRun (p.210), ilog::qti::Span (p.207),

ilog::qti::SimpleChoice (p.200), ilog::qti::SimpleAssociableChoice (p.198),

ilog::qti::SimpleMatchSet (p.203), ilog::qti::ChoiceInteraction (p.65), ilog::qti::MatchInteraction

(p.148), ilog::qti::CorrectResponse (p.84), ilog::qti::Mapping (p.142),

ilog::qti::ResponseDeclaration (p.184), ilog::qti::ItemBody (p.139), ilog::qti::AssessmentItem

(p.45), ilog::qti::BaseValue (p.51), ilog::qti::Correct (p.82), ilog::qti::IsNull (p.137),

ilog::qti::MapResponse (p.144), ilog::qti::Match (p.146), ilog::qti::Variable (p.215),

ilog::qti::ResponseIf (p.189), ilog::qti::ResponseElseIf (p.187), ilog::qti::ResponseElse (p.186),

ilog::qti::ResponseCondition (p.181), ilog::qti::SetOutcomeValue (p.195), and

ilog::qti::ResponseProcessing (p.191).

Element::Ptr ilog::qti::Element::GetParent () const [inline]

Get the parent element of this element.

bool ilog::qti::Element::HasAncestorOfType (const wxString & type) [inline]

Does the element have an ancestor of the given type?

virtual bool ilog::qti::Element::IsInstantiable () const [inline, virtual]

This method should be overriden to return 'true' if the element can be instantiated as a

graphical component (i.e.

it is a non-abstract QTI element). Instantiable elements should also implement the

'IInstantiable' interface.

Reimplemented in ilog::qti::BodyElement (p.57), ilog::qti::ChoiceInteraction (p.66), and

ilog::qti::MatchInteraction (p.149).

96

virtual bool ilog::qti::Element::IsValid () const [inline, virtual]

This method should return true if and only if all required attributes of the element are fully

specified and all specified attributes are valid (i.e.

identifiers are unique, strings of type 'String256' are less than 256 characters long, etc.).

Reimplemented in ilog::qti::VariableDeclaration (p.217).

void ilog::qti::Element::RemoveChild (Element::Ptr child) [inline, protected]

virtual wxXmlNode* ilog::qti::Element::Serialize () const [inline, virtual]

Implements ilog::qti::ISerializable (p.136).

Reimplemented in ilog::qti::BodyElement (p.57), ilog::qti::Interaction (p.128), ilog::qti::Flow

(p.109), ilog::qti::Prompt (p.173), ilog::qti::SimpleInline (p.202), ilog::qti::BlockInteraction

(p.54), ilog::qti::TextRun (p.210), ilog::qti::Span (p.207), ilog::qti::Choice (p.63),

ilog::qti::SimpleChoice (p.200), ilog::qti::AssociableChoice (p.50),

ilog::qti::SimpleAssociableChoice (p.198), ilog::qti::SimpleMatchSet (p.204),

ilog::qti::ChoiceInteraction (p.66), ilog::qti::MatchInteraction (p.149),

ilog::qti::VariableDeclaration (p.217), ilog::qti::CorrectResponse (p.84), ilog::qti::Mapping

(p.142), ilog::qti::ResponseDeclaration (p.184), ilog::qti::ItemBody (p.139),

ilog::qti::AssessmentItem (p.46), ilog::qti::BaseValue (p.51), ilog::qti::Correct (p.82),

ilog::qti::IsNull (p.137), ilog::qti::MapResponse (p.144), ilog::qti::Match (p.146),

ilog::qti::Variable (p.215), ilog::qti::ResponseIf (p.189), ilog::qti::ResponseElse (p.186),

ilog::qti::ResponseCondition (p.182), ilog::qti::SetOutcomeValue (p.195), and

ilog::qti::ResponseProcessing (p.191).

void ilog::qti::Element::SetParent (Element::Ptr parent) [inline]

Set the parent element of this node.

ilog::As::Error Class Reference

#include <exceptions.h>

Inheritance diagram for ilog::As::Error:

97

Public Member Functions

Error (const wxString &what)

Constructor & Destructor Documentation

ilog::As::Error::Error (const wxString & what) [inline]

ilog::As::EventAction Struct Reference

#include <component_extra_properties.h>

98

Public Member Functions

EventAction ()

EventAction (const EventAction &that)

EventAction (const wxString &event_name, const wxString &action)

EventAction (const wxString &event_name, const wxString &action, wxString single_arg)

EventAction (const wxString &event_name, const wxString &action, const std::vector< wxString >

&arguments)

Public Attributes

wxString EventName

wxString Action

std::vector< wxString > Arguments

Constructor & Destructor Documentation

ilog::As::EventAction::EventAction () [inline]

ilog::As::EventAction::EventAction (const EventAction & that) [inline]

ilog::As::EventAction::EventAction (const wxString & event_name, const wxString &

action) [inline]

ilog::As::EventAction::EventAction (const wxString & event_name, const wxString &

action, wxString single_arg) [inline]

ilog::As::EventAction::EventAction (const wxString & event_name, const wxString &

action, const std::vector< wxString > & arguments) [inline]

Member Data Documentation

wxString ilog::As::EventAction::Action

std::vector<wxString> ilog::As::EventAction::Arguments

wxString ilog::As::EventAction::EventName

ilog::ExecuteOnExit Class Reference Executes a given parameterless function on block exit.

#include <execute_on_exit.h>

Public Types

typedef boost::function< void()> VoidFunc

99

Public Member Functions

ExecuteOnExit (VoidFunc func)

~ExecuteOnExit ()

Detailed Description

Executes a given parameterless function on block exit.

Member Typedef Documentation

typedef boost::function<void()> ilog::ExecuteOnExit::VoidFunc

Constructor & Destructor Documentation

ilog::ExecuteOnExit::ExecuteOnExit (VoidFunc func) [inline]

ilog::ExecuteOnExit::~ExecuteOnExit () [inline]

ilog::qti::ExitResponse Class Reference #include <response_processing.h>

Inheritance diagram for ilog::qti::ExitResponse:

ilog::qti::Expression Class Reference #include <expression.h>

Inheritance diagram for ilog::qti::Expression:

100

Public Types

typedef shared_ptr< Expression > Ptr

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<Expression> ilog::qti::Expression::Ptr

Reimplemented from ilog::qti::Element (p.94).

Reimplemented in ilog::qti::BaseValue (p.51), ilog::qti::Correct (p.81), ilog::qti::IsNull (p.137),

ilog::qti::MapResponse (p.144), ilog::qti::Match (p.145), and ilog::qti::Variable (p.214).

Member Function Documentation

static Ptr ilog::qti::Expression::CreateFromXml (const wxXmlNode * root_node) [static]

FileDeleter Class Reference Deletes a file on scope exit.

#include <file_deleter.h>

Public Member Functions

FileDeleter (wxFileName file)

~FileDeleter ()

Detailed Description

Deletes a file on scope exit.

101

Constructor & Destructor Documentation

FileDeleter::FileDeleter (wxFileName file) [inline, explicit]

FileDeleter::~FileDeleter () [inline]

ilog::FileFormatException Class Reference Exception representing a mal-formatted input file.

#include <file_exception.h>

Inherits std::runtime_error.Public Member Functions

FileFormatException (const wxString &what) throw ()

virtual ~FileFormatException () throw ()

Detailed Description

Exception representing a mal-formatted input file.

Constructor & Destructor Documentation

ilog::FileFormatException::FileFormatException (const wxString & what) throw () [inline]

virtual ilog::FileFormatException::~FileFormatException () throw () [inline, virtual]

ilog::FileIoException Class Reference Exception representing attempted access to a non-existant or otherwise unusable file.

#include <file_exception.h>

Inherits std::runtime_error.Public Member Functions

FileIoException (const wxString &what) throw ()

virtual ~FileIoException () throw ()

Detailed Description

Exception representing attempted access to a non-existant or otherwise unusable file.

102

Constructor & Destructor Documentation

ilog::FileIoException::FileIoException (const wxString & what) throw () [inline]

virtual ilog::FileIoException::~FileIoException () throw () [inline, virtual]

ilog::FlashCommunicationException Class Reference Exception class thrown by Flash <-> C++ communication operations.

#include <i_flash_player.h>

Inherits std::runtime_error.Public Member Functions

FlashCommunicationException (const wxString &cause)

Detailed Description

Exception class thrown by Flash <-> C++ communication operations.

Constructor & Destructor Documentation

ilog::FlashCommunicationException::FlashCommunicationException (const wxString &

cause) [inline]

ilog::As::FlashInterface Class Reference Container class representing the Actionscript functions exposed in the editor's Flash code.

#include <flash_interface.h>

Classes

class _Application

Contains functions for interacting with the application.

class _Components

Contains functions that deal with Flash components.

class _Qti

Contains functions for dealing with componetns that are mapped to QTI elements.

class _Slides

Contains functions for dealing with Slide components.

Public Types

typedef shared_ptr< FlashInterface > Ptr

103

Public Member Functions

~FlashInterface ()

FlashInterface::Ptr GetSharedFromThis ()

bool IsReady () const

void Reset ()

Static Public Member Functions

static FlashInterface::Ptr Create (IFlashPlayer *flash_player, wxCommandProcessor *&cmd_proc,

FlashInterfaceReadyHandler f)

Public Attributes

_Components Components

_Slides Slides

_Application Application

_Qti Qti

Friends

class ComponentHandle

class _Components

class _Interactions

Detailed Description

Container class representing the Actionscript functions exposed in the editor's Flash code.

Member Typedef Documentation

typedef shared_ptr<FlashInterface> ilog::As::FlashInterface::Ptr

Constructor & Destructor Documentation

ilog::As::FlashInterface::~FlashInterface ()

Member Function Documentation

static FlashInterface::Ptr ilog::As::FlashInterface::Create (IFlashPlayer * flash_player,

wxCommandProcessor *& cmd_proc, FlashInterfaceReadyHandler f) [static]

Static factory method.

The reference-to-pointer for 'cmd_proc' is necessary because the command processor has not

been instantiated yet when the FlashInterface is created, so a value copy of the (NULL)

pointer won't work.

104

FlashInterface::Ptr ilog::As::FlashInterface::GetSharedFromThis () [inline]

bool ilog::As::FlashInterface::IsReady () const [inline]

Indicates functions can be safely called on the Flash interface.

void ilog::As::FlashInterface::Reset () [inline]

Reset the Flash interface object.

Clears the property cache and calles Application.Reset().

Friends And Related Function Documentation

friend class _Components [friend]

friend class _Interactions [friend]

friend class ComponentHandle [friend]

Member Data Documentation

_Application ilog::As::FlashInterface::Application

_Components ilog::As::FlashInterface::Components

_Qti ilog::As::FlashInterface::Qti

_Slides ilog::As::FlashInterface::Slides

ilog::FlashPlayerCtrl Class Reference Base class for objects which wrap a Flash player.

#include <flash_player_ctrl.h>

Inheritance diagram for ilog::FlashPlayerCtrl:

Public Member Functions

FlashPlayerCtrl (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition,

const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr)

105

virtual ~FlashPlayerCtrl ()

void AddReadyStateListener (ReadyStateListener listener)

bool ExposeCppFunction (const wxString &name, FlashExportFunction func)

bool RemoveCppFunction (const wxString &name)

bool HasExposedCppFunction (const wxString &name)

void OnRightMouseDown (wxMouseEvent &evt)

As::AnyType CallFunction (const wxString &func_name)

As::AnyType CallFunction (const wxString &func_name, As::AnyType arg1)

As::AnyType CallFunction (const wxString &func_name, As::AnyType arg1, As::AnyType arg2)

As::AnyType CallFunction (const wxString &func_name, As::AnyType arg1, As::AnyType arg2,

As::AnyType arg3)

As::AnyType CallFunction (const wxString &func_name, As::AnyType arg1, As::AnyType arg2,

As::AnyType arg3, As::AnyType arg4)

As::AnyType CallFunction (const wxString &func_name, As::AnyType arg1, As::AnyType arg2,

As::AnyType arg3, As::AnyType arg4, As::AnyType arg5)

As::AnyType CallFunction (const wxString &func_name, const As::AnyTypeVector &args)

Protected Member Functions

virtual wxString DoFlashCall (const wxString &xml)=0

void ProcessFlashRequest (const wxString &xml_request)

void ProcessFlashReadyStateChange (int new_state)

Detailed Description

Base class for objects which wrap a Flash player.

Create a subclass to wrap a platform-specific Flash player interface. Implementations must call

the protected "ProcessXXX" methods as appropriate in response to Flash player requests.

If you don't want the default Flash player context menu to pop up when the user right-clicks,

redirect event handling from whatever control you use to display the Flash player by calling its

SetEventHandler method as the last line in your constructor and passing this as the

argument.

Constructor & Destructor Documentation

ilog::FlashPlayerCtrl::FlashPlayerCtrl (wxWindow * parent, wxWindowID id, const

wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long

style = 0, const wxString & name = wxPanelNameStr)

Constructor.

See wxPanel for parameter descriptions.

virtual ilog::FlashPlayerCtrl::~FlashPlayerCtrl () [virtual]

Destructor.

Base class implementation does nothing.

106

Member Function Documentation

void ilog::FlashPlayerCtrl::AddReadyStateListener (ReadyStateListener listener) [virtual]

Adds a callback function that will receive Flash ready state change events.

Implements ilog::IFlashPlayer (p.117).

As::AnyType ilog::FlashPlayerCtrl::CallFunction (const wxString & func_name, const

As::AnyTypeVector & args) [virtual]

Call the given function with the given arguments.

Implements ilog::IFlashPlayer (p.117).

As::AnyType ilog::FlashPlayerCtrl::CallFunction (const wxString & func_name, As::AnyType arg1, As::AnyType arg2, As::AnyType arg3, As::AnyType arg4,

As::AnyType arg5) [virtual]

Call the given function with the given arguments. Delegates to 'vector' overload.

Implements ilog::IFlashPlayer (p.117).

As::AnyType ilog::FlashPlayerCtrl::CallFunction (const wxString & func_name, As::AnyType arg1, As::AnyType arg2, As::AnyType arg3, As::AnyType arg4) [virtual]

Call the given function with the given arguments. Delegates to 'vector' overload.

Implements ilog::IFlashPlayer (p.117).

As::AnyType ilog::FlashPlayerCtrl::CallFunction (const wxString & func_name,

As::AnyType arg1, As::AnyType arg2, As::AnyType arg3) [virtual]

Call the given function with the given arguments. Delegates to 'vector' overload.

Implements ilog::IFlashPlayer (p.117).

As::AnyType ilog::FlashPlayerCtrl::CallFunction (const wxString & func_name,

As::AnyType arg1, As::AnyType arg2) [virtual]

Call the given function with the given arguments. Delegates to 'vector' overload.

Implements ilog::IFlashPlayer (p.117).

As::AnyType ilog::FlashPlayerCtrl::CallFunction (const wxString & func_name,

As::AnyType arg1) [virtual]

Call the given function with the given argument. Delegates to 'vector' overload.

Implements ilog::IFlashPlayer (p.118).

107

As::AnyType ilog::FlashPlayerCtrl::CallFunction (const wxString & func_name) [virtual]

Call the given function with no arguments. Delegates to 'vector' overload.

Implements ilog::IFlashPlayer (p.118).

virtual wxString ilog::FlashPlayerCtrl::DoFlashCall (const wxString & xml) [protected, pure virtual]

Call a Flash player function.

All that the implementor needs to do is to forward the request to the Flash player in a

platform-dependent manner and return the xml string received from Flash. No other

processing should be done.

Implemented in ilog::Msw_FlashPlayerCtrl (p.155).

bool ilog::FlashPlayerCtrl::ExposeCppFunction (const wxString & name,

FlashExportFunction func) [virtual]

Makes a C++ function callable from Flash with the specified name.

Implements ilog::IFlashPlayer (p.118).

bool ilog::FlashPlayerCtrl::HasExposedCppFunction (const wxString & name) [virtual]

Checks whether a C++ function has already been exposed with the specified name.

Implements ilog::IFlashPlayer (p.119).

void ilog::FlashPlayerCtrl::OnRightMouseDown (wxMouseEvent & evt)

Event handler for right mouse clicks.

Used to bypass the Flash player's default context menu in order to use an OS-native one

instead.

void ilog::FlashPlayerCtrl::ProcessFlashReadyStateChange (int new_state) [protected]

Dispatches a Flash ready-state-changed event to all registered listeners.

This method must be called by the implementation when the ready state of the Flash player

changes.

void ilog::FlashPlayerCtrl::ProcessFlashRequest (const wxString & xml_request) [protected]

Parses and dispatches a Flash -> CPP function call.

This method must be called by the implementation in reponse to an event generated by the

Flash player. Simply pass the request string through to this method when it is received from

the Flash player.

bool ilog::FlashPlayerCtrl::RemoveCppFunction (const wxString & name) [virtual]

Removes a previously exposed C++ function.

Implements ilog::IFlashPlayer (p.119).

108

ilog::qti::Flow Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::Flow:

Public Types

typedef shared_ptr< Flow > Ptr

Public Member Functions

Uri GetBase () const

void SetBase (Uri base)

virtual wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Protected Member Functions

Flow (Uri base=Uri())

Flow (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<Flow> ilog::qti::Flow::Ptr

Reimplemented from ilog::qti::ObjectFlow (p.166).

109

Reimplemented in ilog::qti::FlowStatic (p.110), ilog::qti::SimpleInline (p.201),

ilog::qti::BlockInteraction (p.53), ilog::qti::TextRun (p.209), ilog::qti::Span (p.206),

ilog::qti::ChoiceInteraction (p.65), and ilog::qti::MatchInteraction (p.148).

Constructor & Destructor Documentation

ilog::qti::Flow::Flow (Uri base = Uri()) [explicit, protected]

ilog::qti::Flow::Flow (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::Flow::CreateFromXml (const wxXmlNode * root_node) [static]

Reimplemented from ilog::qti::ObjectFlow (p.166).

Reimplemented in ilog::qti::FlowStatic (p.111), ilog::qti::SimpleInline (p.202), and

ilog::qti::BlockInteraction (p.54).

Uri ilog::qti::Flow::GetBase () const [inline]

void ilog::qti::Flow::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

Reimplemented in ilog::qti::FlowStatic (p.111), ilog::qti::SimpleInline (p.202),

ilog::qti::BlockInteraction (p.54), ilog::qti::TextRun (p.210), ilog::qti::Span (p.207),

ilog::qti::ChoiceInteraction (p.65), and ilog::qti::MatchInteraction (p.148).

virtual wxXmlNode* ilog::qti::Flow::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

Reimplemented in ilog::qti::SimpleInline (p.202), ilog::qti::BlockInteraction (p.54),

ilog::qti::TextRun (p.210), ilog::qti::Span (p.207), ilog::qti::ChoiceInteraction (p.66), and

ilog::qti::MatchInteraction (p.149).

void ilog::qti::Flow::SetBase (Uri base) [inline]

ilog::qti::FlowStatic Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::FlowStatic:

110

Public Types

typedef shared_ptr< FlowStatic > Ptr

Public Member Functions

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Protected Member Functions

FlowStatic (Uri base=Uri())

FlowStatic (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<FlowStatic> ilog::qti::FlowStatic::Ptr

Reimplemented from ilog::qti::Flow (p.108).

Reimplemented in ilog::qti::SimpleInline (p.201), ilog::qti::TextRun (p.209), and ilog::qti::Span

(p.206).

111

Constructor & Destructor Documentation

ilog::qti::FlowStatic::FlowStatic (Uri base = Uri()) [inline, explicit, protected]

ilog::qti::FlowStatic::FlowStatic (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::FlowStatic::CreateFromXml (const wxXmlNode * root_node) [static]

Reimplemented from ilog::qti::Flow (p.109).

Reimplemented in ilog::qti::SimpleInline (p.202).

void ilog::qti::FlowStatic::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::Flow (p.109).

Reimplemented in ilog::qti::SimpleInline (p.202), ilog::qti::TextRun (p.210), and ilog::qti::Span

(p.207).

ilog::FontProperty Class Reference

#include <font_property.h>

Public Member Functions

FontProperty (const wxString &label=wxPG_LABEL, const wxString &name=wxPG_LABEL, const

wxFont &init_font=wxFont(), const wxColour &init_color=*wxBLACK)

virtual ~FontProperty ()

virtual void OnSetValue ()

virtual wxString GetValueAsString (int argFlags=0) const

Constructor & Destructor Documentation

ilog::FontProperty::FontProperty (const wxString & label = wxPG_LABEL, const wxString

& name = wxPG_LABEL, const wxFont & init_font = wxFont(), const wxColour &

init_color = *wxBLACK)

virtual ilog::FontProperty::~FontProperty () [virtual]

112

Member Function Documentation

virtual wxString ilog::FontProperty::GetValueAsString (int argFlags = 0) const [virtual]

virtual void ilog::FontProperty::OnSetValue () [virtual]

ilog::FunctionCall Struct Reference Represents a function call passed from Flash to C++.

#include <flash_player_ctrl.h>

Public Member Functions

FunctionCall (const wxString &name, const As::AnyTypeVector &args)

Public Attributes

wxString Name

As::AnyTypeVector Arguments

Detailed Description

Represents a function call passed from Flash to C++.

Constructor & Destructor Documentation

ilog::FunctionCall::FunctionCall (const wxString & name, const As::AnyTypeVector & args) [inline]

Member Data Documentation

As::AnyTypeVector ilog::FunctionCall::Arguments

wxString ilog::FunctionCall::Name

ilog::GeneralPropertiesPanel Class Reference #include <general_properties_panel.h>

Inheritance diagram for ilog::GeneralPropertiesPanel:

113

Public Member Functions

GeneralPropertiesPanel (wxWindow *parent, wxWindowID id, As::FlashInterface::Ptr

flash_interface)

~GeneralPropertiesPanel ()

void DisplayPropertiesFor (As::ComponentHandle h_comp)

void EnableEditing (bool enable=true)

void OnGridCellChanged (wxGridEvent &evt)

Detailed Description

Deprecated:

Constructor & Destructor Documentation

ilog::GeneralPropertiesPanel::GeneralPropertiesPanel (wxWindow * parent, wxWindowID id, As::FlashInterface::Ptr flash_interface)

ilog::GeneralPropertiesPanel::~GeneralPropertiesPanel ()

Member Function Documentation

void ilog::GeneralPropertiesPanel::DisplayPropertiesFor (As::ComponentHandle h_comp) [virtual]

Display all properties for the given component that the control supports.

Implements ilog::IPropertiesDisplayer (p.132).

void ilog::GeneralPropertiesPanel::EnableEditing (bool enable = true)

void ilog::GeneralPropertiesPanel::OnGridCellChanged (wxGridEvent & evt)

ilog::IdGenerator Class Reference An object that generates unique numeric identifiers.

114

#include <id_generator.h>

Public Types

typedef As::UInt IdType

Public Member Functions

IdGenerator ()

size_t GetAssignedIdCount () const

bool HasNextId () const

bool IsAssignedId (IdType id)

IdType NextId ()

void RecycleId (IdType id)

bool RequestId (IdType id)

void Reset ()

Static Public Attributes

static const IdType INVALID = 0

static const IdType FIRST_ID = 1

static const IdType LAST_ID = As::AS_UINT_MAX

static const size_t MAX_ID_COUNT = LAST_ID - FIRST_ID

Detailed Description

An object that generates unique numeric identifiers.

Member Typedef Documentation

typedef As::UInt ilog::IdGenerator::IdType

Constructor & Destructor Documentation

ilog::IdGenerator::IdGenerator () [inline]

Member Function Documentation

size_t ilog::IdGenerator::GetAssignedIdCount () const [inline]

Get the count of ID values that have been issued.

bool ilog::IdGenerator::HasNextId () const [inline]

Is another valid ID available.

bool ilog::IdGenerator::IsAssignedId (IdType id) [inline]

Has the given ID been assigned?

115

IdType ilog::IdGenerator::NextId () [inline]

Get a unique ID value.

void ilog::IdGenerator::RecycleId (IdType id) [inline]

Put the specified ID back into circulation.

bool ilog::IdGenerator::RequestId (IdType id) [inline]

Request that the ID generator allocate the specified ID.

Returns:

True iff the request was granted.

void ilog::IdGenerator::Reset () [inline]

Reset the generator.

Member Data Documentation

const IdType ilog::IdGenerator::FIRST_ID = 1 [static]

The first valid ID value.

const IdType ilog::IdGenerator::INVALID = 0 [static]

The special ID value indicating an invalid id.

const IdType ilog::IdGenerator::LAST_ID = As::AS_UINT_MAX [static]

The last valid ID value.

const size_t ilog::IdGenerator::MAX_ID_COUNT = LAST_ID - FIRST_ID [static]

The maximum number of valid IDs.

ilog::IFlashPlayer Class Reference The interface for an Adobe Flash player.

#include <i_flash_player.h>

Inheritance diagram for ilog::IFlashPlayer:

116

Public Member Functions

virtual void AddReadyStateListener (ReadyStateListener listener)=0

virtual bool ExposeCppFunction (const wxString &name, FlashExportFunction func)=0

virtual bool RemoveCppFunction (const wxString &name)=0

virtual bool HasExposedCppFunction (const wxString &name)=0

virtual As::AnyType CallFunction (const wxString &func_name)=0

virtual As::AnyType CallFunction (const wxString &func_name, As::AnyType arg1)=0

virtual As::AnyType CallFunction (const wxString &func_name, As::AnyType arg1, As::AnyType

arg2)=0

virtual As::AnyType CallFunction (const wxString &func_name, As::AnyType arg1, As::AnyType

arg2, As::AnyType arg3)=0

virtual As::AnyType CallFunction (const wxString &func_name, As::AnyType arg1, As::AnyType

arg2, As::AnyType arg3, As::AnyType arg4)=0

virtual As::AnyType CallFunction (const wxString &func_name, As::AnyType arg1, As::AnyType

arg2, As::AnyType arg3, As::AnyType arg4, As::AnyType arg5)=0

virtual As::AnyType CallFunction (const wxString &func_name, const As::AnyTypeVector

&args)=0

virtual As::AnyType GetVariable (const wxString &var_name)=0

virtual void GotoFrame (int frame_num)=0

virtual bool IsPlaying ()=0

virtual void LoadMovie (int layer, const wxString &url)=0

virtual void Pan (int x, int y, int mode)=0

virtual int PercentLoaded ()=0

virtual void Play ()=0

virtual void Rewind ()=0

virtual void SetVariable (const wxString &var_name, const wxString &value)=0

virtual void SetZoomRect (int left, int top, int right, int bottom)=0

virtual void StopPlay ()=0

virtual int TotalFrames ()=0

virtual void Zoom (int percent)=0

virtual void TCallFrame (const wxString &target, int frame_num)=0

virtual void TCallLabel (const wxString &target, const wxString &label)=0

virtual int TCurrentFrame (const wxString &target)=0

virtual wxString TCurrentLabel (const wxString &target)=0

virtual wxString TGetProperty (const wxString &target, int property)=0

virtual int TGetPropertyAsNumber (const wxString &target, int property)=0

virtual void TGotoFrame (const wxString &target, int frame_num)=0

virtual void TGotoLabel (const wxString &target, const wxString &label)=0

virtual void TPlay (const wxString &target)=0

virtual void TSetProperty (const wxString &target, int property, const wxString &value)=0

virtual void TSetProperty (const wxString &target, int property, int value)=0

virtual void TStopPlay (const wxString &target)=0

virtual int Get_ReadyState ()=0

virtual int Get_TotalFrames ()=0

virtual int Get_FrameNum ()=0

virtual void Set_FrameNum (int frame_num)=0

virtual bool Get_Playing ()=0

virtual void Set_Playing (bool playing)=0

virtual int Get_Quality ()=0

virtual void Set_Quality (int quality)=0

virtual int Get_ScaleMode ()=0

virtual void Set_ScaleMode (int mode)=0

117

virtual int Get_AlignMode ()=0

virtual void Set_AlignMode (int mode)=0

virtual int Get_BackgroundColor ()=0

virtual void Set_BackgroundColor (int color)=0

virtual bool Get_Loop ()=0

virtual void Set_Loop (bool loop)=0

virtual wxString Get_Movie ()=0

virtual void Set_Movie (const wxString &movie)=0

Detailed Description

The interface for an Adobe Flash player.

Implementing most of the interface methods simply requires calling the corresponding function

on the Flash player plugin which you are (presumably) wrapping in the interface.

Member Function Documentation

virtual void ilog::IFlashPlayer::AddReadyStateListener (ReadyStateListener listener) [pure virtual]

Adds a callback function that will receive Flash ready state change events.

Implemented in ilog::FlashPlayerCtrl (p.106).

virtual As::AnyType ilog::IFlashPlayer::CallFunction (const wxString & func_name, const

As::AnyTypeVector & args) [pure virtual]

Implemented in ilog::FlashPlayerCtrl (p.106).

virtual As::AnyType ilog::IFlashPlayer::CallFunction (const wxString & func_name, As::AnyType arg1, As::AnyType arg2, As::AnyType arg3, As::AnyType arg4,

As::AnyType arg5) [pure virtual]

Implemented in ilog::FlashPlayerCtrl (p.106).

virtual As::AnyType ilog::IFlashPlayer::CallFunction (const wxString & func_name,

As::AnyType arg1, As::AnyType arg2, As::AnyType arg3, As::AnyType arg4) [pure virtual]

Implemented in ilog::FlashPlayerCtrl (p.106).

virtual As::AnyType ilog::IFlashPlayer::CallFunction (const wxString & func_name,

As::AnyType arg1, As::AnyType arg2, As::AnyType arg3) [pure virtual]

Implemented in ilog::FlashPlayerCtrl (p.106).

virtual As::AnyType ilog::IFlashPlayer::CallFunction (const wxString & func_name,

As::AnyType arg1, As::AnyType arg2) [pure virtual]

118

Implemented in ilog::FlashPlayerCtrl (p.106).

virtual As::AnyType ilog::IFlashPlayer::CallFunction (const wxString & func_name,

As::AnyType arg1) [pure virtual]

Implemented in ilog::FlashPlayerCtrl (p.106).

virtual As::AnyType ilog::IFlashPlayer::CallFunction (const wxString & func_name) [pure virtual]

Implemented in ilog::FlashPlayerCtrl (p.107).

virtual bool ilog::IFlashPlayer::ExposeCppFunction (const wxString & name,

FlashExportFunction func) [pure virtual]

Makes a C++ function callable from Flash with the specified name.

Implemented in ilog::FlashPlayerCtrl (p.107).

virtual int ilog::IFlashPlayer::Get_AlignMode () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.155).

virtual int ilog::IFlashPlayer::Get_BackgroundColor () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.155).

virtual int ilog::IFlashPlayer::Get_FrameNum () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.155).

virtual bool ilog::IFlashPlayer::Get_Loop () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.155).

virtual wxString ilog::IFlashPlayer::Get_Movie () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.155).

virtual bool ilog::IFlashPlayer::Get_Playing () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.155).

virtual int ilog::IFlashPlayer::Get_Quality () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.155).

virtual int ilog::IFlashPlayer::Get_ReadyState () [pure virtual]

119

Implemented in ilog::Msw_FlashPlayerCtrl (p.156).

virtual int ilog::IFlashPlayer::Get_ScaleMode () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.156).

virtual int ilog::IFlashPlayer::Get_TotalFrames () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.156).

virtual As::AnyType ilog::IFlashPlayer::GetVariable (const wxString & var_name) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.156).

virtual void ilog::IFlashPlayer::GotoFrame (int frame_num) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.156).

virtual bool ilog::IFlashPlayer::HasExposedCppFunction (const wxString & name) [pure virtual]

Checks whether a C++ function has already been exposed with the specified name.

Implemented in ilog::FlashPlayerCtrl (p.107).

virtual bool ilog::IFlashPlayer::IsPlaying () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.156).

virtual void ilog::IFlashPlayer::LoadMovie (int layer, const wxString & url) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.156).

virtual void ilog::IFlashPlayer::Pan (int x, int y, int mode) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.156).

virtual int ilog::IFlashPlayer::PercentLoaded () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.156).

virtual void ilog::IFlashPlayer::Play () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.156).

virtual bool ilog::IFlashPlayer::RemoveCppFunction (const wxString & name) [pure virtual]

Removes a previously exposed C++ function.

120

Implemented in ilog::FlashPlayerCtrl (p.107).

virtual void ilog::IFlashPlayer::Rewind () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.156).

virtual void ilog::IFlashPlayer::Set_AlignMode (int mode) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.157).

virtual void ilog::IFlashPlayer::Set_BackgroundColor (int color) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.157).

virtual void ilog::IFlashPlayer::Set_FrameNum (int frame_num) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.157).

virtual void ilog::IFlashPlayer::Set_Loop (bool loop) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.157).

virtual void ilog::IFlashPlayer::Set_Movie (const wxString & movie) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.157).

virtual void ilog::IFlashPlayer::Set_Playing (bool playing) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.157).

virtual void ilog::IFlashPlayer::Set_Quality (int quality) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.157).

virtual void ilog::IFlashPlayer::Set_ScaleMode (int mode) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.157).

virtual void ilog::IFlashPlayer::SetVariable (const wxString & var_name, const wxString &

value) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.157).

virtual void ilog::IFlashPlayer::SetZoomRect (int left, int top, int right, int bottom) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.157).

121

virtual void ilog::IFlashPlayer::StopPlay () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.157).

virtual void ilog::IFlashPlayer::TCallFrame (const wxString & target, int frame_num) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.158).

virtual void ilog::IFlashPlayer::TCallLabel (const wxString & target, const wxString &

label) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.158).

virtual int ilog::IFlashPlayer::TCurrentFrame (const wxString & target) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.158).

virtual wxString ilog::IFlashPlayer::TCurrentLabel (const wxString & target) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.158).

virtual wxString ilog::IFlashPlayer::TGetProperty (const wxString & target, int property) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.158).

virtual int ilog::IFlashPlayer::TGetPropertyAsNumber (const wxString & target, int

property) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.158).

virtual void ilog::IFlashPlayer::TGotoFrame (const wxString & target, int frame_num) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.158).

virtual void ilog::IFlashPlayer::TGotoLabel (const wxString & target, const wxString &

label) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.158).

virtual int ilog::IFlashPlayer::TotalFrames () [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.158).

virtual void ilog::IFlashPlayer::TPlay (const wxString & target) [pure virtual]

122

Implemented in ilog::Msw_FlashPlayerCtrl (p.158).

virtual void ilog::IFlashPlayer::TSetProperty (const wxString & target, int property, int

value) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.159).

virtual void ilog::IFlashPlayer::TSetProperty (const wxString & target, int property, const

wxString & value) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.159).

virtual void ilog::IFlashPlayer::TStopPlay (const wxString & target) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.159).

virtual void ilog::IFlashPlayer::Zoom (int percent) [pure virtual]

Implemented in ilog::Msw_FlashPlayerCtrl (p.159).

ilog::qti::IInstantiable Class Reference The interface of a class that can be instantiated with Flash components.

#include <base.h>

Inheritance diagram for ilog::qti::IInstantiable:

Public Types

typedef shared_ptr< IInstantiable > Ptr

Public Member Functions

virtual Identifier GetId () const =0

virtual std::vector< As::ComponentHandle > GetGraphicalComponents () const =0

virtual wxString Instantiate (shared_ptr< As::FlashInterface > flash_interface,

As::ComponentHandle parent, int style)=0

Detailed Description

The interface of a class that can be instantiated with Flash components.

123

Member Typedef Documentation

typedef shared_ptr<IInstantiable> ilog::qti::IInstantiable::Ptr

Reimplemented in ilog::qti::BodyElement (p.55), ilog::qti::Interaction (p.128), ilog::qti::Prompt

(p.173), ilog::qti::SimpleInline (p.201), ilog::qti::BlockInteraction (p.53), ilog::qti::Span (p.206),

ilog::qti::Choice (p.62), ilog::qti::SimpleChoice (p.199), ilog::qti::AssociableChoice (p.49),

ilog::qti::SimpleAssociableChoice (p.197), ilog::qti::ChoiceInteraction (p.65),

ilog::qti::MatchInteraction (p.148), and ilog::qti::ItemBody (p.138).

Member Function Documentation

virtual std::vector<As::ComponentHandle>

ilog::qti::IInstantiable::GetGraphicalComponents () const [pure virtual]

Implemented in ilog::qti::BodyElement (p.56).

virtual Identifier ilog::qti::IInstantiable::GetId () const [pure virtual]

Implemented in ilog::qti::BodyElement (p.57).

virtual wxString ilog::qti::IInstantiable::Instantiate (shared_ptr< As::FlashInterface >

flash_interface, As::ComponentHandle parent, int style) [pure virtual]

This function creates a tree of Flash graphical objects to which the BodyElement can be

mapped, and returns a mapping describing which graphical component corresponds to which

QTI component ID.

Implemented in ilog::qti::Prompt (p.173), ilog::qti::Span (p.207), ilog::qti::SimpleChoice (p.200),

ilog::qti::SimpleAssociableChoice (p.198), ilog::qti::ChoiceInteraction (p.65),

ilog::qti::MatchInteraction (p.149), and ilog::qti::ItemBody (p.139).

ilog::As::IllegalOperationError Class Reference #include <exceptions.h>

Inheritance diagram for ilog::As::IllegalOperationError:

Public Member Functions

IllegalOperationError (const wxString &what)

124

Constructor & Destructor Documentation

ilog::As::IllegalOperationError::IllegalOperationError (const wxString & what) [inline]

ilog::qti::Include Class Reference #include <response_processing.h>

Inheritance diagram for ilog::qti::Include:

ilog::qti::Inline Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::Inline:

125

Public Types

typedef shared_ptr< Inline > Ptr

Public Member Functions

virtual String ToString () const =0

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Protected Member Functions

Inline ()

Member Typedef Documentation

typedef shared_ptr<Inline> ilog::qti::Inline::Ptr

Reimplemented from ilog::qti::Element (p.94).

Reimplemented in ilog::qti::InlineStatic (p.126), ilog::qti::SimpleInline (p.201), ilog::qti::TextRun

(p.209), and ilog::qti::Span (p.206).

Constructor & Destructor Documentation

ilog::qti::Inline::Inline () [inline, protected]

Member Function Documentation

static Ptr ilog::qti::Inline::CreateFromXml (const wxXmlNode * root_node) [static]

Reimplemented in ilog::qti::InlineStatic (p.126), and ilog::qti::SimpleInline (p.202).

virtual String ilog::qti::Inline::ToString () const [pure virtual]

This method should return a string representation of the Inline element.

This may mean ignoring nested elements that do not have a string representation.

Implemented in ilog::qti::TextRun (p.210), and ilog::qti::Span (p.207).

ilog::qti::InlineStatic Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::InlineStatic:

126

Public Types

typedef shared_ptr< InlineStatic > Ptr

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Protected Member Functions

InlineStatic ()

Member Typedef Documentation

typedef shared_ptr<InlineStatic> ilog::qti::InlineStatic::Ptr

Reimplemented from ilog::qti::Inline (p.125).

Reimplemented in ilog::qti::SimpleInline (p.201), ilog::qti::TextRun (p.209), and ilog::qti::Span

(p.206).

Constructor & Destructor Documentation

ilog::qti::InlineStatic::InlineStatic () [inline, protected]

Member Function Documentation

static Ptr ilog::qti::InlineStatic::CreateFromXml (const wxXmlNode * root_node) [static]

Reimplemented from ilog::qti::Inline (p.125).

127

Reimplemented in ilog::qti::SimpleInline (p.202).

ilog::qti::Interaction Class Reference Base class of QTI 'interaction' types.

#include <content_model.h>

Inheritance diagram for ilog::qti::Interaction:

Public Types

typedef shared_ptr< Interaction > Ptr

Public Member Functions

Identifier GetResponseIdentifier () const

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Protected Member Functions

Interaction ()

Interaction (const wxXmlNode *root_node)

Interaction (Identifier response_identifier, String256 label=wxT(""), StyleClass cls=wxT(""),

Language lang=wxT(""))

Detailed Description

Base class of QTI 'interaction' types.

128

Interactions represent graded student interactions.

Member Typedef Documentation

typedef shared_ptr<Interaction> ilog::qti::Interaction::Ptr

Reimplemented from ilog::qti::BodyElement (p.55).

Reimplemented in ilog::qti::BlockInteraction (p.53), ilog::qti::ChoiceInteraction (p.65), and

ilog::qti::MatchInteraction (p.148).

Constructor & Destructor Documentation

ilog::qti::Interaction::Interaction () [protected]

ilog::qti::Interaction::Interaction (const wxXmlNode * root_node) [explicit, protected]

ilog::qti::Interaction::Interaction (Identifier response_identifier, String256 label =

wxT(""), StyleClass cls = wxT(""), Language lang = wxT("")) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::Interaction::CreateFromXml (const wxXmlNode * root_node) [static]

Create an Interaction subclass based on the XML root node.

Reimplemented in ilog::qti::BlockInteraction (p.54).

Identifier ilog::qti::Interaction::GetResponseIdentifier () const [inline]

Get the 'responseIdentifier' property.

void ilog::qti::Interaction::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::BodyElement (p.57).

Reimplemented in ilog::qti::BlockInteraction (p.54), ilog::qti::ChoiceInteraction (p.65), and

ilog::qti::MatchInteraction (p.148).

wxXmlNode* ilog::qti::Interaction::Serialize () const [virtual]

Reimplemented from ilog::qti::BodyElement (p.57).

Reimplemented in ilog::qti::BlockInteraction (p.54), ilog::qti::ChoiceInteraction (p.66), and

ilog::qti::MatchInteraction (p.149).

129

ilog::Interaction Class Reference A class encapsulating a QTI Interaction and the Flash graphical components used to instantiate

it.

#include <interaction.h>

Public Types

typedef weak_ptr< Interaction > Ptr

typedef shared_ptr< Interaction > SharedPtr

Public Member Functions

const qti::Interaction::Ptr GetQtiInteraction () const

const qti::ResponseDeclaration::Ptr GetQtiResponseDeclaration () const

shared_ptr< As::FlashInterface > GetFlashInterface () const

As::ComponentHandle GetParent () const

std::vector< As::ComponentHandle > GetAllMemberComponents () const

As::ComponentHandle GetMemberComponent (qti::Identifier id) const

bool HasMemberComponent (As::ComponentHandle h_comp) const

qti::Identifier GetMappedQtiIdentifier (As::ComponentHandle h_comp) const

Friends

class As::FlashInterface

Detailed Description

A class encapsulating a QTI Interaction and the Flash graphical components used to instantiate

it.

Member Typedef Documentation

typedef weak_ptr<Interaction> ilog::Interaction::Ptr

typedef shared_ptr<Interaction> ilog::Interaction::SharedPtr

Member Function Documentation

std::vector<As::ComponentHandle> ilog::Interaction::GetAllMemberComponents () const [inline]

Get all Flash components used to instantiate the Interaction.

shared_ptr<As::FlashInterface> ilog::Interaction::GetFlashInterface () const [inline]

Get the associated FlashInterface.

qti::Identifier ilog::Interaction::GetMappedQtiIdentifier (As::ComponentHandle h_comp)

const [inline]

Get the QTI element represented by the given Flash component.

130

As::ComponentHandle ilog::Interaction::GetMemberComponent (qti::Identifier id) const [inline]

Get the Flash component used to instantiate the QTI element with the given identifier.

As::ComponentHandle ilog::Interaction::GetParent () const [inline]

Get the parent Container under which the Interaction was created.

const qti::Interaction::Ptr ilog::Interaction::GetQtiInteraction () const [inline]

Get the associated QTI Interaction.

const qti::ResponseDeclaration::Ptr ilog::Interaction::GetQtiResponseDeclaration () const [inline]

Get the associated QTI ResponseDeclaration.

bool ilog::Interaction::HasMemberComponent (As::ComponentHandle h_comp) const [inline]

Does the Interaction contain the given Flash component?

Friends And Related Function Documentation

friend class As::FlashInterface [friend]

ilog::InteractionCreationDialog Class Reference A dialog class that lets the user choose which interaction wizard to launch.

#include <interaction_creation_dialog.h>

Public Member Functions

InteractionCreationDialog (wxWindow *parent, wxWindowID id)

int GetSelectedIndex () const

void OnSelectionChanged (wxNotebookEvent &evt)

Detailed Description

A dialog class that lets the user choose which interaction wizard to launch.

Constructor & Destructor Documentation

ilog::InteractionCreationDialog::InteractionCreationDialog (wxWindow * parent, wxWindowID id)

131

Member Function Documentation

int ilog::InteractionCreationDialog::GetSelectedIndex () const [inline]

void ilog::InteractionCreationDialog::OnSelectionChanged (wxNotebookEvent & evt)

ilog::InteractionCreationValidator Class Reference wxValidator subclass for InteractionCreationValidator

#include <interaction_creation_dialog.h>

Public Member Functions

InteractionCreationValidator (int *result_ptr)

InteractionCreationValidator (const InteractionCreationValidator &that)

virtual wxObject * Clone () const

virtual bool TransferFromWindow ()

virtual bool TransferToWindow ()

virtual bool Validate (wxWindow *parent)

Detailed Description

wxValidator subclass for InteractionCreationValidator

Constructor & Destructor Documentation

ilog::InteractionCreationValidator::InteractionCreationValidator (int * result_ptr) [inline]

ilog::InteractionCreationValidator::InteractionCreationValidator (const

InteractionCreationValidator & that) [inline]

Member Function Documentation

virtual wxObject* ilog::InteractionCreationValidator::Clone () const [inline, virtual]

virtual bool ilog::InteractionCreationValidator::TransferFromWindow () [inline, virtual]

virtual bool ilog::InteractionCreationValidator::TransferToWindow () [inline, virtual]

virtual bool ilog::InteractionCreationValidator::Validate (wxWindow * parent) [inline, virtual]

132

ilog::As::IOError Class Reference #include <exceptions.h>

Inheritance diagram for ilog::As::IOError:

Public Member Functions

IOError (const wxString &what)

Constructor & Destructor Documentation

ilog::As::IOError::IOError (const wxString & what) [inline]

ilog::IPropertiesDisplayer Class Reference The interface of a control that displays the properties of a Flash component.

#include <i_properties_displayer.h>

Inheritance diagram for ilog::IPropertiesDisplayer:

Public Member Functions

virtual void DisplayPropertiesFor (As::ComponentHandle h_comp)=0

Detailed Description

The interface of a control that displays the properties of a Flash component.

Member Function Documentation

virtual void ilog::IPropertiesDisplayer::DisplayPropertiesFor (As::ComponentHandle

h_comp) [pure virtual]

Display all properties for the given component that the control supports.

133

Implemented in ilog::DragablePropertiesPanel (p.87), ilog::DropTargetPropertiesPanel (p.88),

ilog::GeneralPropertiesPanel (p.113), ilog::PropertiesPanel (p.175), and ilog::PropertyEditor

(p.178).

ilog::qti::ISerializable Class Reference The interface of a component that can be serialized to and restored form XML.

#include <base.h>

Inheritance diagram for ilog::qti::ISerializable:

134

135

Public Types

typedef shared_ptr< ISerializable > Ptr

Public Member Functions

virtual wxXmlNode * Serialize () const =0

virtual void InitializeFromXml (const wxXmlNode *root_node)

Detailed Description

The interface of a component that can be serialized to and restored form XML.

Member Typedef Documentation

typedef shared_ptr<ISerializable> ilog::qti::ISerializable::Ptr

Reimplemented in ilog::qti::Element (p.94), ilog::qti::BodyElement (p.55), ilog::qti::Interaction

(p.128), ilog::qti::ObjectFlow (p.166), ilog::qti::Flow (p.108), ilog::qti::FlowStatic (p.110),

ilog::qti::Inline (p.125), ilog::qti::InlineStatic (p.126), ilog::qti::Prompt (p.173),

ilog::qti::SimpleInline (p.201), ilog::qti::Block (p.52), ilog::qti::BlockInteraction (p.53),

ilog::qti::TextRun (p.209), ilog::qti::Span (p.206), ilog::qti::Choice (p.62),

ilog::qti::SimpleChoice (p.199), ilog::qti::AssociableChoice (p.49),

ilog::qti::SimpleAssociableChoice (p.197), ilog::qti::SimpleMatchSet (p.203),

ilog::qti::ChoiceInteraction (p.65), ilog::qti::MatchInteraction (p.148),

ilog::qti::VariableDeclaration (p.216), ilog::qti::CorrectResponse (p.83), ilog::qti::Mapping

(p.141), ilog::qti::ResponseDeclaration (p.183), ilog::qti::ItemBody (p.138),

ilog::qti::AssessmentItem (p.45), ilog::qti::Expression (p.100), ilog::qti::BaseValue (p.51),

ilog::qti::Correct (p.81), ilog::qti::IsNull (p.137), ilog::qti::MapResponse (p.144),

ilog::qti::Match (p.145), ilog::qti::Variable (p.214), ilog::qti::OutcomeRule (p.169),

ilog::qti::ResponseRule (p.192), ilog::qti::ResponseIf (p.188), ilog::qti::ResponseElseIf (p.187),

ilog::qti::ResponseElse (p.185), ilog::qti::ResponseCondition (p.181), ilog::qti::SetOutcomeValue

(p.194), and ilog::qti::ResponseProcessing (p.190).

Member Function Documentation

virtual void ilog::qti::ISerializable::InitializeFromXml (const wxXmlNode * root_node) [inline, virtual]

Reimplemented in ilog::qti::BodyElement (p.57), ilog::qti::Interaction (p.128), ilog::qti::Flow

(p.109), ilog::qti::FlowStatic (p.111), ilog::qti::Prompt (p.173), ilog::qti::SimpleInline (p.202),

ilog::qti::BlockInteraction (p.54), ilog::qti::TextRun (p.210), ilog::qti::Span (p.207),

ilog::qti::Choice (p.63), ilog::qti::SimpleChoice (p.200), ilog::qti::AssociableChoice (p.49),

ilog::qti::SimpleAssociableChoice (p.198), ilog::qti::SimpleMatchSet (p.203),

ilog::qti::ChoiceInteraction (p.65), ilog::qti::MatchInteraction (p.148),

ilog::qti::VariableDeclaration (p.217), ilog::qti::CorrectResponse (p.84), ilog::qti::Mapping

(p.142), ilog::qti::ResponseDeclaration (p.184), ilog::qti::ItemBody (p.139),

ilog::qti::AssessmentItem (p.46), ilog::qti::BaseValue (p.51), ilog::qti::Correct (p.82),

ilog::qti::IsNull (p.137), ilog::qti::MapResponse (p.144), ilog::qti::Match (p.146),

ilog::qti::Variable (p.215), ilog::qti::ResponseIf (p.189), ilog::qti::ResponseElse (p.186),

136

ilog::qti::ResponseCondition (p.182), ilog::qti::SetOutcomeValue (p.195), and

ilog::qti::ResponseProcessing (p.191).

virtual wxXmlNode* ilog::qti::ISerializable::Serialize () const [pure virtual]

Implemented in ilog::qti::Element (p.96), ilog::qti::BodyElement (p.57), ilog::qti::Interaction

(p.128), ilog::qti::Flow (p.109), ilog::qti::Prompt (p.173), ilog::qti::SimpleInline (p.202),

ilog::qti::BlockInteraction (p.54), ilog::qti::TextRun (p.210), ilog::qti::Span (p.207),

ilog::qti::Choice (p.63), ilog::qti::SimpleChoice (p.200), ilog::qti::AssociableChoice (p.50),

ilog::qti::SimpleAssociableChoice (p.198), ilog::qti::SimpleMatchSet (p.204),

ilog::qti::ChoiceInteraction (p.66), ilog::qti::MatchInteraction (p.149),

ilog::qti::VariableDeclaration (p.217), ilog::qti::CorrectResponse (p.84), ilog::qti::Mapping

(p.142), ilog::qti::ResponseDeclaration (p.184), ilog::qti::ItemBody (p.139),

ilog::qti::AssessmentItem (p.46), ilog::qti::BaseValue (p.51), ilog::qti::Correct (p.82),

ilog::qti::IsNull (p.137), ilog::qti::MapResponse (p.144), ilog::qti::Match (p.146),

ilog::qti::Variable (p.215), ilog::qti::ResponseIf (p.189), ilog::qti::ResponseElse (p.186),

ilog::qti::ResponseCondition (p.182), ilog::qti::SetOutcomeValue (p.195), and

ilog::qti::ResponseProcessing (p.191).

ilog::qti::IsNull Class Reference #include <expression.h>

Inheritance diagram for ilog::qti::IsNull:

Public Types

typedef shared_ptr< IsNull > Ptr

Public Member Functions

wxString GetName () const

Expression::Ptr GetExpression () const

void SetExpression (Expression::Ptr ex)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

137

static Ptr Create (Expression::Ptr ex)

Protected Member Functions

IsNull ()

IsNull (Expression::Ptr ex)

IsNull (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<IsNull> ilog::qti::IsNull::Ptr

Reimplemented from ilog::qti::Expression (p.100).

Constructor & Destructor Documentation

ilog::qti::IsNull::IsNull () [protected]

ilog::qti::IsNull::IsNull (Expression::Ptr ex) [explicit, protected]

ilog::qti::IsNull::IsNull (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::IsNull::Create (Expression::Ptr ex) [static]

static Ptr ilog::qti::IsNull::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::IsNull::Create () [static]

Expression::Ptr ilog::qti::IsNull::GetExpression () const [inline]

wxString ilog::qti::IsNull::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::IsNull::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::IsNull::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

138

void ilog::qti::IsNull::SetExpression (Expression::Ptr ex) [inline]

ilog::qti::ItemBody Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::ItemBody:

Public Types

typedef shared_ptr< ItemBody > Ptr

Public Member Functions

wxString GetName () const

wxString Instantiate (shared_ptr< As::FlashInterface > flash_interface, As::ComponentHandle

parent, int style=0)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

Protected Member Functions

ItemBody ()

ItemBody (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<ItemBody> ilog::qti::ItemBody::Ptr

Reimplemented from ilog::qti::BodyElement (p.55).

139

Constructor & Destructor Documentation

ilog::qti::ItemBody::ItemBody () [protected]

ilog::qti::ItemBody::ItemBody (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::ItemBody::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::ItemBody::Create () [static]

wxString ilog::qti::ItemBody::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::ItemBody::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::BodyElement (p.57).

wxString ilog::qti::ItemBody::Instantiate (shared_ptr< As::FlashInterface > flash_interface,

As::ComponentHandle parent, int style = 0) [virtual]

This function creates a tree of Flash graphical objects to which the BodyElement can be

mapped, and returns a mapping describing which graphical component corresponds to which

QTI component ID.

Implements ilog::qti::IInstantiable (p.123).

wxXmlNode* ilog::qti::ItemBody::Serialize () const [virtual]

Reimplemented from ilog::qti::BodyElement (p.57).

ilog::LengthRestrictedTextValidator Class Reference A wxTextValidator subclass that restricts the text entered in a text control to a fixed length.

#include <length_restricted_text_validator.h>

Public Member Functions

LengthRestrictedTextValidator (size_t max_length=0, long style=wxFILTER_NONE, wxString

*valPtr=NULL)

void OnChar (wxKeyEvent &evt)

140

Detailed Description

A wxTextValidator subclass that restricts the text entered in a text control to a fixed length.

Constructor & Destructor Documentation

ilog::LengthRestrictedTextValidator::LengthRestrictedTextValidator (size_t max_length =

0, long style = wxFILTER_NONE, wxString * valPtr = NULL) [inline]

Member Function Documentation

void ilog::LengthRestrictedTextValidator::OnChar (wxKeyEvent & evt) [inline]

ilog::qti::LookupOutcomeValue Class Reference

#include <response_processing.h>

Inheritance diagram for ilog::qti::LookupOutcomeValue:

ilog::qti::Mapping Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::Mapping:

141

Public Types

typedef shared_ptr< Mapping > Ptr

typedef std::pair< ValueType, Float > MapEntry

Public Member Functions

wxString GetName () const

Float GetLowerBound () const

void SetLowerBound (Float bound)

Float GetUpperBound () const

void SetUpperBound (Float bound)

Float GetDefaultValue () const

void SetDefaultValue (Float val)

std::vector< MapEntry > GetMapEntries () const

Float GetMappedValue (const ValueType &map_key) const

bool HasMappedValue (const ValueType &map_key) const

void SetMappedValue (const ValueType &map_key, Float mapped_value)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Float default_value, Float upper_bound=NO_UPPER_BOUND, Float

lower_bound=NO_LOWER_BOUND)

Static Public Attributes

static const Float NO_LOWER_BOUND = FLT_MIN

static const Float NO_UPPER_BOUND = FLT_MAX

Protected Member Functions

Mapping ()

Mapping (Float default_value, Float upper_bound=NO_UPPER_BOUND, Float

lower_bound=NO_LOWER_BOUND)

Mapping (const wxXmlNode *root_node)

Member Typedef Documentation

typedef std::pair<ValueType, Float> ilog::qti::Mapping::MapEntry

typedef shared_ptr<Mapping> ilog::qti::Mapping::Ptr

Reimplemented from ilog::qti::Element (p.94).

142

Constructor & Destructor Documentation

ilog::qti::Mapping::Mapping () [protected]

ilog::qti::Mapping::Mapping (Float default_value, Float upper_bound = NO_UPPER_BOUND,

Float lower_bound = NO_LOWER_BOUND) [explicit, protected]

ilog::qti::Mapping::Mapping (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::Mapping::Create (Float default_value, Float upper_bound =

NO_UPPER_BOUND, Float lower_bound = NO_LOWER_BOUND) [static]

static Ptr ilog::qti::Mapping::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::Mapping::Create () [static]

Float ilog::qti::Mapping::GetDefaultValue () const [inline]

Float ilog::qti::Mapping::GetLowerBound () const [inline]

std::vector<MapEntry> ilog::qti::Mapping::GetMapEntries () const [inline]

Float ilog::qti::Mapping::GetMappedValue (const ValueType & map_key) const [inline]

wxString ilog::qti::Mapping::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

Float ilog::qti::Mapping::GetUpperBound () const [inline]

bool ilog::qti::Mapping::HasMappedValue (const ValueType & map_key) const [inline]

void ilog::qti::Mapping::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::Mapping::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

143

void ilog::qti::Mapping::SetDefaultValue (Float val) [inline]

void ilog::qti::Mapping::SetLowerBound (Float bound) [inline]

void ilog::qti::Mapping::SetMappedValue (const ValueType & map_key, Float

mapped_value) [inline]

void ilog::qti::Mapping::SetUpperBound (Float bound) [inline]

Member Data Documentation

const Float ilog::qti::Mapping::NO_LOWER_BOUND = FLT_MIN [static]

const Float ilog::qti::Mapping::NO_UPPER_BOUND = FLT_MAX [static]

ilog::qti::MapResponse Class Reference #include <expression.h>

Inheritance diagram for ilog::qti::MapResponse:

Public Types

typedef shared_ptr< MapResponse > Ptr

Public Member Functions

wxString GetName () const

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Identifier identifier)

144

Protected Member Functions

MapResponse ()

MapResponse (Identifier identifier)

MapResponse (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<MapResponse> ilog::qti::MapResponse::Ptr

Reimplemented from ilog::qti::Expression (p.100).

Constructor & Destructor Documentation

ilog::qti::MapResponse::MapResponse () [protected]

ilog::qti::MapResponse::MapResponse (Identifier identifier) [explicit, protected]

ilog::qti::MapResponse::MapResponse (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::MapResponse::Create (Identifier identifier) [static]

static Ptr ilog::qti::MapResponse::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::MapResponse::Create () [static]

wxString ilog::qti::MapResponse::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::MapResponse::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::MapResponse::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

145

ilog::qti::Match Class Reference #include <expression.h>

Inheritance diagram for ilog::qti::Match:

Public Types

typedef shared_ptr< Match > Ptr

Public Member Functions

wxString GetName () const

Expression::Ptr GetExpression1 () const

void SetExpression1 (Expression::Ptr ex)

Expression::Ptr GetExpression2 () const

void SetExpression2 (Expression::Ptr ex)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Expression::Ptr ex1, Expression::Ptr ex2)

Protected Member Functions

Match ()

Match (Expression::Ptr ex1, Expression::Ptr ex2)

Match (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<Match> ilog::qti::Match::Ptr

Reimplemented from ilog::qti::Expression (p.100).

146

Constructor & Destructor Documentation

ilog::qti::Match::Match () [protected]

ilog::qti::Match::Match (Expression::Ptr ex1, Expression::Ptr ex2) [protected]

ilog::qti::Match::Match (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::Match::Create (Expression::Ptr ex1, Expression::Ptr ex2) [static]

static Ptr ilog::qti::Match::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::Match::Create () [static]

Expression::Ptr ilog::qti::Match::GetExpression1 () const [inline]

Expression::Ptr ilog::qti::Match::GetExpression2 () const [inline]

wxString ilog::qti::Match::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::Match::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::Match::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

void ilog::qti::Match::SetExpression1 (Expression::Ptr ex) [inline]

void ilog::qti::Match::SetExpression2 (Expression::Ptr ex) [inline]

ilog::qti::MatchInteraction Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::MatchInteraction:

147

Public Types

typedef shared_ptr< MatchInteraction > Ptr

Public Member Functions

bool IsInstantiable () const

wxString GetName () const

Boolean IsShuffle () const

void SetShuffle (Boolean shuffle)

Integer GetMaxAssociations () const

void SetMaxAssociations (Integer max_associations)

Integer GetMinAssociations () const

void SetMinAssociations (Integer min_associations)

SimpleMatchSet::Ptr GetSourceChoices () const

void SetSourceChoices (SimpleMatchSet::Ptr choices)

SimpleMatchSet::Ptr GetTargetChoices () const

void SetTargetChoices (SimpleMatchSet::Ptr choices)

wxString Instantiate (shared_ptr< As::FlashInterface > flash_interface, As::ComponentHandle

parent, int style=0)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Identifier response_identifier, Boolean shuffle=false, Integer max_associations=1,

Integer min_associations=0)

Protected Member Functions

MatchInteraction ()

MatchInteraction (Identifier response_identifier, Boolean shuffle=false, Integer max_associations=1,

Integer min_associations=0)

MatchInteraction (const wxXmlNode *root_node)

148

Member Typedef Documentation

typedef shared_ptr<MatchInteraction> ilog::qti::MatchInteraction::Ptr

Reimplemented from ilog::qti::BlockInteraction (p.53).

Constructor & Destructor Documentation

ilog::qti::MatchInteraction::MatchInteraction () [protected]

ilog::qti::MatchInteraction::MatchInteraction (Identifier response_identifier, Boolean

shuffle = false, Integer max_associations = 1, Integer min_associations = 0) [explicit, protected]

ilog::qti::MatchInteraction::MatchInteraction (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::MatchInteraction::Create (Identifier response_identifier, Boolean

shuffle = false, Integer max_associations = 1, Integer min_associations = 0) [static]

static Ptr ilog::qti::MatchInteraction::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::MatchInteraction::Create () [static]

Integer ilog::qti::MatchInteraction::GetMaxAssociations () const [inline]

Integer ilog::qti::MatchInteraction::GetMinAssociations () const [inline]

wxString ilog::qti::MatchInteraction::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

SimpleMatchSet::Ptr ilog::qti::MatchInteraction::GetSourceChoices () const [inline]

SimpleMatchSet::Ptr ilog::qti::MatchInteraction::GetTargetChoices () const [inline]

void ilog::qti::MatchInteraction::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::BlockInteraction (p.54).

149

wxString ilog::qti::MatchInteraction::Instantiate (shared_ptr< As::FlashInterface >

flash_interface, As::ComponentHandle parent, int style = 0) [virtual]

This function creates a tree of Flash graphical objects to which the BodyElement can be

mapped, and returns a mapping describing which graphical component corresponds to which

QTI component ID.

Implements ilog::qti::IInstantiable (p.123).

bool ilog::qti::MatchInteraction::IsInstantiable () const [inline, virtual]

This method should be overriden to return 'true' if the element can be instantiated as a

graphical component (i.e.

it is a non-abstract QTI element). Instantiable elements should also implement the

'IInstantiable' interface.

Reimplemented from ilog::qti::Element (p.95).

Boolean ilog::qti::MatchInteraction::IsShuffle () const [inline]

wxXmlNode* ilog::qti::MatchInteraction::Serialize () const [virtual]

Reimplemented from ilog::qti::BlockInteraction (p.54).

void ilog::qti::MatchInteraction::SetMaxAssociations (Integer max_associations) [inline]

void ilog::qti::MatchInteraction::SetMinAssociations (Integer min_associations) [inline]

void ilog::qti::MatchInteraction::SetShuffle (Boolean shuffle) [inline]

void ilog::qti::MatchInteraction::SetSourceChoices (SimpleMatchSet::Ptr choices) [inline]

void ilog::qti::MatchInteraction::SetTargetChoices (SimpleMatchSet::Ptr choices) [inline]

ilog::MatchInteractionWizard Class Reference A wxWizard used to create a Match interaction.

#include <match_interaction_wizard.h>

Public Member Functions

MatchInteractionWizard (wxFrame *parent_frame, qti::AssessmentItem &out_item)

wxWizardPage * GetFirstPage () const

void OnWizardFinished (wxWizardEvent &evt)

void OnWizardPageChanging (wxWizardEvent &evt)

150

Detailed Description

A wxWizard used to create a Match interaction.

Constructor & Destructor Documentation

ilog::MatchInteractionWizard::MatchInteractionWizard (wxFrame * parent_frame, qti::AssessmentItem & out_item)

Member Function Documentation

wxWizardPage* ilog::MatchInteractionWizard::GetFirstPage () const

void ilog::MatchInteractionWizard::OnWizardFinished (wxWizardEvent & evt)

void ilog::MatchInteractionWizard::OnWizardPageChanging (wxWizardEvent & evt)

ilog::MatchInteractionWizardPage_Answer Class Reference The 'answers' page of the wizard.

#include <match_interaction_wizard.h>

Public Member Functions

MatchInteractionWizardPage_Answer (wxWizard *parent, qti::AssessmentItem &out_item)

void SetSourceMnemonics (std::vector< wxString > mnemonics)

void SetTargetMnemonics (std::vector< wxString > mnemonics)

std::vector< std::pair< int, int > > GetAnswer () const

Friends

class MatchInteractionWizard

Detailed Description

The 'answers' page of the wizard.

Constructor & Destructor Documentation

ilog::MatchInteractionWizardPage_Answer::MatchInteractionWizardPage_Answer (wxWizard * parent, qti::AssessmentItem & out_item)

151

Member Function Documentation

std::vector< std::pair<int,int> > ilog::MatchInteractionWizardPage_Answer::GetAnswer () const

Get the source-target pairs marked as 'correct' by the user.

void ilog::MatchInteractionWizardPage_Answer::SetSourceMnemonics (std::vector< wxString > mnemonics)

Set the mnemonics for the 'source' choices in the answer specification control.

void ilog::MatchInteractionWizardPage_Answer::SetTargetMnemonics (std::vector< wxString > mnemonics)

Set the mnemonics for the 'target' choices in the answer specification control.

Friends And Related Function Documentation

friend class MatchInteractionWizard [friend]

ilog::MatchInteractionWizardPage_Parameters Class Reference The 'parameters' page of the wizard.

#include <match_interaction_wizard.h>

Public Member Functions

MatchInteractionWizardPage_Parameters (wxWizard *parent, qti::AssessmentItem &out_item)

int GetSourceCount () const

int GetTargetCount () const

Friends

class MatchInteractionWizard

Detailed Description

The 'parameters' page of the wizard.

Constructor & Destructor Documentation

ilog::MatchInteractionWizardPage_Parameters::MatchInteractionWizardPage_Parameters (wxWizard * parent, qti::AssessmentItem & out_item)

152

Member Function Documentation

int ilog::MatchInteractionWizardPage_Parameters::GetSourceCount () const [inline]

int ilog::MatchInteractionWizardPage_Parameters::GetTargetCount () const [inline]

Friends And Related Function Documentation

friend class MatchInteractionWizard [friend]

ilog::MatchInteractionWizardPage_Responses Class Reference The 'responses' page of the wizard.

#include <match_interaction_wizard.h>

Public Member Functions

MatchInteractionWizardPage_Responses (wxWizard *parent, qti::AssessmentItem &out_item)

void SetSourceCount (int count)

void SetTargetCount (int count)

Friends

class MatchInteractionWizard

Detailed Description

The 'responses' page of the wizard.

Constructor & Destructor Documentation

ilog::MatchInteractionWizardPage_Responses::MatchInteractionWizardPage_Responses (wxWizard * parent, qti::AssessmentItem & out_item)

Member Function Documentation

void ilog::MatchInteractionWizardPage_Responses::SetSourceCount (int count)

void ilog::MatchInteractionWizardPage_Responses::SetTargetCount (int count)

153

Friends And Related Function Documentation

friend class MatchInteractionWizard [friend]

ilog::As::MemoryError Class Reference #include <exceptions.h>

Inheritance diagram for ilog::As::MemoryError:

Public Member Functions

MemoryError (const wxString &what)

Constructor & Destructor Documentation

ilog::As::MemoryError::MemoryError (const wxString & what) [inline]

ilog::Msw_FlashPlayerCtrl Class Reference An implementation of FlashPlayerCtrl on the Microsoft Windows platform.

#include <msw_flash_player_ctrl.h>

Inheritance diagram for ilog::Msw_FlashPlayerCtrl:

Public Member Functions

Msw_FlashPlayerCtrl (wxWindow *parent, wxWindowID id, const wxPoint

&pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString

&name=wxPanelNameStr)

virtual ~Msw_FlashPlayerCtrl ()

void OnActiveXEvent (wxActiveXEvent &evt)

virtual As::AnyType GetVariable (const wxString &var_name)

virtual void GotoFrame (int frame_num)

154

virtual bool IsPlaying ()

virtual void LoadMovie (int layer, const wxString &url)

virtual void Pan (int x, int y, int mode)

virtual int PercentLoaded ()

virtual void Play ()

virtual void Rewind ()

virtual void SetVariable (const wxString &var_name, const wxString &value)

virtual void SetZoomRect (int left, int top, int right, int bottom)

virtual void StopPlay ()

virtual int TotalFrames ()

virtual void Zoom (int percent)

virtual void TCallFrame (const wxString &target, int frame_num)

virtual void TCallLabel (const wxString &target, const wxString &label)

virtual int TCurrentFrame (const wxString &target)

virtual wxString TCurrentLabel (const wxString &target)

virtual wxString TGetProperty (const wxString &target, int property)

virtual int TGetPropertyAsNumber (const wxString &target, int property)

virtual void TGotoFrame (const wxString &target, int frame_num)

virtual void TGotoLabel (const wxString &target, const wxString &label)

virtual void TPlay (const wxString &target)

virtual void TSetProperty (const wxString &target, int property, const wxString &value)

virtual void TSetProperty (const wxString &target, int property, int value)

virtual void TStopPlay (const wxString &target)

virtual int Get_ReadyState ()

virtual int Get_TotalFrames ()

virtual int Get_FrameNum ()

virtual void Set_FrameNum (int frame_num)

virtual bool Get_Playing ()

virtual void Set_Playing (bool playing)

virtual int Get_Quality ()

virtual void Set_Quality (int quality)

virtual int Get_ScaleMode ()

virtual void Set_ScaleMode (int mode)

virtual int Get_AlignMode ()

virtual void Set_AlignMode (int mode)

virtual int Get_BackgroundColor ()

virtual void Set_BackgroundColor (int color)

virtual bool Get_Loop ()

virtual void Set_Loop (bool loop)

virtual wxString Get_Movie ()

virtual void Set_Movie (const wxString &movie)

Protected Member Functions

virtual wxString DoFlashCall (const wxString &xml)

Detailed Description

An implementation of FlashPlayerCtrl on the Microsoft Windows platform.

Uses wxActiveXControl to encapsulate the Adobe Flash player ActiveX control.

155

Constructor & Destructor Documentation

ilog::Msw_FlashPlayerCtrl::Msw_FlashPlayerCtrl (wxWindow * parent, wxWindowID id, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize,

long style = 0, const wxString & name = wxPanelNameStr)

virtual ilog::Msw_FlashPlayerCtrl::~Msw_FlashPlayerCtrl () [virtual]

Member Function Documentation

virtual wxString ilog::Msw_FlashPlayerCtrl::DoFlashCall (const wxString & xml) [protected, virtual]

Call a Flash player function.

All that the implementor needs to do is to forward the request to the Flash player in a

platform-dependent manner and return the xml string received from Flash. No other

processing should be done.

Implements ilog::FlashPlayerCtrl (p.107).

virtual int ilog::Msw_FlashPlayerCtrl::Get_AlignMode () [virtual]

Implements ilog::IFlashPlayer (p.118).

virtual int ilog::Msw_FlashPlayerCtrl::Get_BackgroundColor () [virtual]

Implements ilog::IFlashPlayer (p.118).

virtual int ilog::Msw_FlashPlayerCtrl::Get_FrameNum () [virtual]

Implements ilog::IFlashPlayer (p.118).

virtual bool ilog::Msw_FlashPlayerCtrl::Get_Loop () [virtual]

Implements ilog::IFlashPlayer (p.118).

virtual wxString ilog::Msw_FlashPlayerCtrl::Get_Movie () [virtual]

Implements ilog::IFlashPlayer (p.118).

virtual bool ilog::Msw_FlashPlayerCtrl::Get_Playing () [virtual]

Implements ilog::IFlashPlayer (p.118).

virtual int ilog::Msw_FlashPlayerCtrl::Get_Quality () [virtual]

Implements ilog::IFlashPlayer (p.118).

156

virtual int ilog::Msw_FlashPlayerCtrl::Get_ReadyState () [virtual]

Implements ilog::IFlashPlayer (p.118).

virtual int ilog::Msw_FlashPlayerCtrl::Get_ScaleMode () [virtual]

Implements ilog::IFlashPlayer (p.119).

virtual int ilog::Msw_FlashPlayerCtrl::Get_TotalFrames () [virtual]

Implements ilog::IFlashPlayer (p.119).

virtual As::AnyType ilog::Msw_FlashPlayerCtrl::GetVariable (const wxString & var_name) [virtual]

Implements ilog::IFlashPlayer (p.119).

virtual void ilog::Msw_FlashPlayerCtrl::GotoFrame (int frame_num) [virtual]

Implements ilog::IFlashPlayer (p.119).

virtual bool ilog::Msw_FlashPlayerCtrl::IsPlaying () [virtual]

Implements ilog::IFlashPlayer (p.119).

virtual void ilog::Msw_FlashPlayerCtrl::LoadMovie (int layer, const wxString & url) [virtual]

Implements ilog::IFlashPlayer (p.119).

void ilog::Msw_FlashPlayerCtrl::OnActiveXEvent (wxActiveXEvent & evt)

Responds to ActiveX events in order to dispatch Flash -> C++ function calls.

virtual void ilog::Msw_FlashPlayerCtrl::Pan (int x, int y, int mode) [virtual]

Implements ilog::IFlashPlayer (p.119).

virtual int ilog::Msw_FlashPlayerCtrl::PercentLoaded () [virtual]

Implements ilog::IFlashPlayer (p.119).

virtual void ilog::Msw_FlashPlayerCtrl::Play () [virtual]

Implements ilog::IFlashPlayer (p.119).

virtual void ilog::Msw_FlashPlayerCtrl::Rewind () [virtual]

Implements ilog::IFlashPlayer (p.120).

157

virtual void ilog::Msw_FlashPlayerCtrl::Set_AlignMode (int mode) [virtual]

Implements ilog::IFlashPlayer (p.120).

virtual void ilog::Msw_FlashPlayerCtrl::Set_BackgroundColor (int color) [virtual]

Implements ilog::IFlashPlayer (p.120).

virtual void ilog::Msw_FlashPlayerCtrl::Set_FrameNum (int frame_num) [virtual]

Implements ilog::IFlashPlayer (p.120).

virtual void ilog::Msw_FlashPlayerCtrl::Set_Loop (bool loop) [virtual]

Implements ilog::IFlashPlayer (p.120).

virtual void ilog::Msw_FlashPlayerCtrl::Set_Movie (const wxString & movie) [virtual]

Implements ilog::IFlashPlayer (p.120).

virtual void ilog::Msw_FlashPlayerCtrl::Set_Playing (bool playing) [virtual]

Implements ilog::IFlashPlayer (p.120).

virtual void ilog::Msw_FlashPlayerCtrl::Set_Quality (int quality) [virtual]

Implements ilog::IFlashPlayer (p.120).

virtual void ilog::Msw_FlashPlayerCtrl::Set_ScaleMode (int mode) [virtual]

Implements ilog::IFlashPlayer (p.120).

virtual void ilog::Msw_FlashPlayerCtrl::SetVariable (const wxString & var_name, const

wxString & value) [virtual]

Implements ilog::IFlashPlayer (p.120).

virtual void ilog::Msw_FlashPlayerCtrl::SetZoomRect (int left, int top, int right, int

bottom) [virtual]

Implements ilog::IFlashPlayer (p.120).

virtual void ilog::Msw_FlashPlayerCtrl::StopPlay () [virtual]

Implements ilog::IFlashPlayer (p.121).

158

virtual void ilog::Msw_FlashPlayerCtrl::TCallFrame (const wxString & target, int

frame_num) [virtual]

Implements ilog::IFlashPlayer (p.121).

virtual void ilog::Msw_FlashPlayerCtrl::TCallLabel (const wxString & target, const wxString & label) [virtual]

Implements ilog::IFlashPlayer (p.121).

virtual int ilog::Msw_FlashPlayerCtrl::TCurrentFrame (const wxString & target) [virtual]

Implements ilog::IFlashPlayer (p.121).

virtual wxString ilog::Msw_FlashPlayerCtrl::TCurrentLabel (const wxString & target) [virtual]

Implements ilog::IFlashPlayer (p.121).

virtual wxString ilog::Msw_FlashPlayerCtrl::TGetProperty (const wxString & target, int

property) [virtual]

Implements ilog::IFlashPlayer (p.121).

virtual int ilog::Msw_FlashPlayerCtrl::TGetPropertyAsNumber (const wxString & target,

int property) [virtual]

Implements ilog::IFlashPlayer (p.121).

virtual void ilog::Msw_FlashPlayerCtrl::TGotoFrame (const wxString & target, int

frame_num) [virtual]

Implements ilog::IFlashPlayer (p.121).

virtual void ilog::Msw_FlashPlayerCtrl::TGotoLabel (const wxString & target, const

wxString & label) [virtual]

Implements ilog::IFlashPlayer (p.121).

virtual int ilog::Msw_FlashPlayerCtrl::TotalFrames () [virtual]

Implements ilog::IFlashPlayer (p.121).

virtual void ilog::Msw_FlashPlayerCtrl::TPlay (const wxString & target) [virtual]

Implements ilog::IFlashPlayer (p.121).

159

virtual void ilog::Msw_FlashPlayerCtrl::TSetProperty (const wxString & target, int

property, int value) [virtual]

Implements ilog::IFlashPlayer (p.122).

virtual void ilog::Msw_FlashPlayerCtrl::TSetProperty (const wxString & target, int property, const wxString & value) [virtual]

Implements ilog::IFlashPlayer (p.122).

virtual void ilog::Msw_FlashPlayerCtrl::TStopPlay (const wxString & target) [virtual]

Implements ilog::IFlashPlayer (p.122).

virtual void ilog::Msw_FlashPlayerCtrl::Zoom (int percent) [virtual]

Implements ilog::IFlashPlayer (p.122).

ilog::MxmlParser Class Reference Parser for creating Flash component hierarchy from MXML source.

#include <mxml_parser.h>

Public Member Functions

MxmlParser (As::FlashInterface::Ptr flash_interface)

bool operator() (shared_ptr< wxXmlDocument > xml)

Detailed Description

Parser for creating Flash component hierarchy from MXML source.

Constructor & Destructor Documentation

ilog::MxmlParser::MxmlParser (As::FlashInterface::Ptr flash_interface)

Create a parser that generats components in the given FlashInterface.

Member Function Documentation

bool ilog::MxmlParser::operator() (shared_ptr< wxXmlDocument > xml)

Parse the given MXML source document.

160

ilog::MxmlParsingException Class Reference Exception indicating an error while parsing an MXML source file.

#include <mxml_parser.h>

Inherits std::runtime_error.Public Member Functions

MxmlParsingException (const wxString &cause)

Detailed Description

Exception indicating an error while parsing an MXML source file.

Constructor & Destructor Documentation

ilog::MxmlParsingException::MxmlParsingException (const wxString & cause) [inline]

ilog::MyApp Class Reference wxApp subclass for the IFE application

#include <main.h>

Public Member Functions

MyApp ()

~MyApp ()

virtual int OnExit ()

virtual void HandleEvent (wxEvtHandler *handler, wxEventFunction func, wxEvent &event) const

virtual bool OnInit ()

virtual int OnRun ()

Detailed Description

wxApp subclass for the IFE application

Constructor & Destructor Documentation

ilog::MyApp::MyApp ()

ilog::MyApp::~MyApp ()

161

Member Function Documentation

virtual void ilog::MyApp::HandleEvent (wxEvtHandler * handler, wxEventFunction func, wxEvent & event) const [virtual]

virtual int ilog::MyApp::OnExit () [virtual]

virtual bool ilog::MyApp::OnInit () [virtual]

virtual int ilog::MyApp::OnRun () [virtual]

ilog::NullDeleter Struct Reference A functor that does nothing.

#include <null_deleter.h>

Public Member Functions

void operator() (const void *) const

Detailed Description

A functor that does nothing.

Pass a NullDeleter as the 'deleter' parameter to the constructor of a boost smart pointer to prevent

the pointer from deleting the held object.

Member Function Documentation

void ilog::NullDeleter::operator() (const void *) const [inline]

ilog::As::Object Class Reference Class representing an Actionscript Object that can be used in STL containers.

#include <object.h>

Public Types

typedef AnyTypeMap::key_type key_type

typedef AnyTypeMap::mapped_type mapped_type

typedef AnyTypeMap::value_type value_type

typedef AnyTypeMap::reference reference

typedef AnyTypeMap::const_reference const_reference

typedef AnyTypeMap::size_type size_type

typedef AnyTypeMap::difference_type difference_type

162

typedef AnyTypeMap::iterator iterator

typedef AnyTypeMap::const_iterator const_iterator

typedef AnyTypeMap::reverse_iterator reverse_iterator

typedef AnyTypeMap::const_reverse_iterator const_reverse_iterator

Public Member Functions

Object ()

Object (const AnyTypeMap &fields)

Object (shared_ptr< AnyTypeMap > fields)

Object (const Object &that)

~Object ()

Object & operator= (const Object &that)

Object Clone () const

iterator begin ()

const_iterator begin () const

iterator end ()

const_iterator end () const

reverse_iterator rbegin ()

const_reverse_iterator rbegin () const

reverse_iterator rend ()

const_reverse_iterator rend () const

size_type size () const

bool empty () const

void erase (iterator position)

size_type erase (const key_type &x)

void erase (iterator first, iterator last)

std::pair< iterator, bool > insert (const value_type &x)

iterator insert (iterator position, const value_type &x)

template<typename InputIterator > void insert (InputIterator first, InputIterator last)

iterator find (const key_type &key)

const_iterator find (const key_type &key) const

mapped_type & operator[] (const wxString &name)

mapped_type operator[] (const wxString &name) const

bool operator< (const Object &that) const

bool operator== (const Object &that) const

bool operator!= (const Object &that) const

Detailed Description

Class representing an Actionscript Object that can be used in STL containers.

Implements most of the std::map interface.

Object is a reference type. If you need to make a deep copy of an Object, you must use

Object::Clone().

Member Typedef Documentation

typedef AnyTypeMap::const_iterator ilog::As::Object::const_iterator

Const iterator -- supports all operations of std::map::const_iterator.

163

typedef AnyTypeMap::const_reference ilog::As::Object::const_reference

Const reference to mapped_type.

typedef AnyTypeMap::const_reverse_iterator ilog::As::Object::const_reverse_iterator

Const reverse iterator -- supports all operations of std::map::const_reverse_iterator.

typedef AnyTypeMap::difference_type ilog::As::Object::difference_type

Difference type of Object.

typedef AnyTypeMap::iterator ilog::As::Object::iterator

Iterator -- supports all operations of std::map::iterator.

typedef AnyTypeMap::key_type ilog::As::Object::key_type

Key type of Object.

typedef AnyTypeMap::mapped_type ilog::As::Object::mapped_type

Mapped type of Object.

typedef AnyTypeMap::reference ilog::As::Object::reference

Reference to mapped_type.

typedef AnyTypeMap::reverse_iterator ilog::As::Object::reverse_iterator

Reverse iterator -- supports all operations of std::map::reverse_iterator.

typedef AnyTypeMap::size_type ilog::As::Object::size_type

Size type of Object.

typedef AnyTypeMap::value_type ilog::As::Object::value_type

Value type of Object.

Constructor & Destructor Documentation

ilog::As::Object::Object () [inline]

Default ctor.

ilog::As::Object::Object (const AnyTypeMap & fields) [inline, explicit]

Copies 'fields' since we're not sure if it was created on the stack or on the heap.

This constructor is explicit so that you don't accidentally make lots of expensive copies

through implicit conversions.

ilog::As::Object::Object (shared_ptr< AnyTypeMap > fields) [inline, explicit]

Initialize Object from shared pointer to AnyTypeMap.

This ctor copies the pointer, so operations on the pointee AnyTypeMap will affect the

contents of this Object instance.

ilog::As::Object::Object (const Object & that) [inline]

Copy constructor.

164

Object is a reference type, so this makes a shallow copy. If you want a deep copy, use

Object::Clone().

ilog::As::Object::~Object () [inline]

Destructor.

Member Function Documentation

const_iterator ilog::As::Object::begin () const [inline]

Same as in std::map.

iterator ilog::As::Object::begin () [inline]

Same as in std::map.

Object ilog::As::Object::Clone () const [inline]

Make a deep copy of this Object instance.

bool ilog::As::Object::empty () const [inline]

Same as in std::map.

const_iterator ilog::As::Object::end () const [inline]

Same as in std::map.

iterator ilog::As::Object::end () [inline]

Same as in std::map.

void ilog::As::Object::erase (iterator first, iterator last) [inline]

Same as in std::map.

size_type ilog::As::Object::erase (const key_type & x) [inline]

Same as in std::map.

void ilog::As::Object::erase (iterator position) [inline]

Same as in std::map.

const_iterator ilog::As::Object::find (const key_type & key) const [inline]

Same as in std::map.

iterator ilog::As::Object::find (const key_type & key) [inline]

Same as in std::map.

template<typename InputIterator > void ilog::As::Object::insert (InputIterator first,

InputIterator last) [inline]

Same as in std::map.

iterator ilog::As::Object::insert (iterator position, const value_type & x) [inline]

Same as in std::map.

165

std::pair<iterator, bool> ilog::As::Object::insert (const value_type & x) [inline]

Same as in std::map.

bool ilog::As::Object::operator!= (const Object & that) const [inline]

This is identity-of-reference equivalence.

bool ilog::As::Object::operator< (const Object & that) const [inline]

This method is for the use of ordered STL containers ONLY.

In general, the concept of "ordering" does not make sense for an Object.

Object& ilog::As::Object::operator= (const Object & that) [inline]

Overloaded assignment operator. Object is a reference type, so this makes a shallow copy.

bool ilog::As::Object::operator== (const Object & that) const [inline]

This is identity-of-reference equivalence.

mapped_type ilog::As::Object::operator[] (const wxString & name) const [inline]

Same as in std::map.

mapped_type& ilog::As::Object::operator[] (const wxString & name) [inline]

Same as in std::map.

const_reverse_iterator ilog::As::Object::rbegin () const [inline]

Same as in std::map.

reverse_iterator ilog::As::Object::rbegin () [inline]

Same as in std::map.

const_reverse_iterator ilog::As::Object::rend () const [inline]

Same as in std::map.

reverse_iterator ilog::As::Object::rend () [inline]

Same as in std::map.

size_type ilog::As::Object::size () const [inline]

Same as in std::map.

ilog::qti::ObjectFlow Class Reference

#include <content_model.h>

Inheritance diagram for ilog::qti::ObjectFlow:

166

Public Types

typedef shared_ptr< ObjectFlow > Ptr

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<ObjectFlow> ilog::qti::ObjectFlow::Ptr

Reimplemented from ilog::qti::Element (p.94).

Reimplemented in ilog::qti::Flow (p.108), ilog::qti::FlowStatic (p.110), ilog::qti::SimpleInline

(p.201), ilog::qti::BlockInteraction (p.53), ilog::qti::TextRun (p.209), ilog::qti::Span (p.206),

ilog::qti::ChoiceInteraction (p.65), and ilog::qti::MatchInteraction (p.148).

Member Function Documentation

static Ptr ilog::qti::ObjectFlow::CreateFromXml (const wxXmlNode * root_node) [static]

Reimplemented in ilog::qti::Flow (p.109), ilog::qti::FlowStatic (p.111), ilog::qti::SimpleInline

(p.202), and ilog::qti::BlockInteraction (p.54).

167

ilog::OptionListBuilder Class Reference A graphical control that lets the user enter lines of text and add them to a list.

#include <option_list_builder.h>

Public Member Functions

OptionListBuilder (wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint

&pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL,

const wxString &name="OptionListBuilder")

~OptionListBuilder ()

void OnAdd (wxCommandEvent &evt)

void OnDelete (wxCommandEvent &evt)

DECLARE_EVENT_TABLE ()

DECLARE_ABSTRACT_CLASS (OptionListBuilder)

Detailed Description

A graphical control that lets the user enter lines of text and add them to a list.

This is similar to the controls used to i.e. add include directories in MSVC.

Constructor & Destructor Documentation

ilog::OptionListBuilder::OptionListBuilder (wxWindow * parent, wxWindowID id =

wxID_ANY, const wxPoint & pos = wxDefaultPosition, const wxSize & size =

wxDefaultSize, long style = wxTAB_TRAVERSAL, const wxString & name =

"OptionListBuilder")

ilog::OptionListBuilder::~OptionListBuilder ()

Member Function Documentation

ilog::OptionListBuilder::DECLARE_ABSTRACT_CLASS (OptionListBuilder)

ilog::OptionListBuilder::DECLARE_EVENT_TABLE ()

void ilog::OptionListBuilder::OnAdd (wxCommandEvent & evt)

void ilog::OptionListBuilder::OnDelete (wxCommandEvent & evt)

ilog::OrganizerNotebook Class Reference A wxNotebook containing controls for manipulating the organization of the project.

#include <organizer_notebook.h>

168

Public Member Functions

OrganizerNotebook (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition,

const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxNotebookNameStr)

~OrganizerNotebook ()

void Initialize (SlideChooser *slide_chooser, ComponentsPanel *components_panel)

SlideChooser * GetSlideChooser ()

ComponentsPanel * GetComponentsPanel ()

Detailed Description

A wxNotebook containing controls for manipulating the organization of the project.

Constructor & Destructor Documentation

ilog::OrganizerNotebook::OrganizerNotebook (wxWindow * parent, wxWindowID id,

const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize,

long style = 0, const wxString & name = wxNotebookNameStr)

ilog::OrganizerNotebook::~OrganizerNotebook ()

Member Function Documentation

ComponentsPanel* ilog::OrganizerNotebook::GetComponentsPanel () [inline]

SlideChooser* ilog::OrganizerNotebook::GetSlideChooser () [inline]

void ilog::OrganizerNotebook::Initialize (SlideChooser * slide_chooser, ComponentsPanel * components_panel)

ilog::qti::OutcomeRule Class Reference #include <outcome.h>

Inheritance diagram for ilog::qti::OutcomeRule:

169

Public Types

typedef shared_ptr< OutcomeRule > Ptr

Member Typedef Documentation

typedef shared_ptr<OutcomeRule> ilog::qti::OutcomeRule::Ptr

Reimplemented from ilog::qti::Element (p.94).

Reimplemented in ilog::qti::SetOutcomeValue (p.194).

ilog::Project Class Reference Describes the data contained in the IFE project manifest.

#include <project_manager.h>

Public Member Functions

~Project ()

wxString GetName ()

void SetName (const wxString &name)

wxString GetSourceName ()

std::vector< wxString > GetContributors ()

void SetContributors (const std::vector< wxString > &names)

std::vector< wxString > GetCreators ()

void SetCreators (const std::vector< wxString > &names)

wxString GetDate ()

void SetDate (const wxString &date)

wxString GetDescription ()

void SetDescription (const wxString &desc)

wxString GetPublisher ()

void SetPublisher (const wxString &publisher)

wxString GetTitle ()

void SetTitle (const wxString &title)

Friends

class ProjectManager

Detailed Description

Describes the data contained in the IFE project manifest.

170

Constructor & Destructor Documentation

ilog::Project::~Project ()

Member Function Documentation

std::vector<wxString> ilog::Project::GetContributors ()

std::vector<wxString> ilog::Project::GetCreators ()

wxString ilog::Project::GetDate ()

wxString ilog::Project::GetDescription ()

wxString ilog::Project::GetName ()

wxString ilog::Project::GetPublisher ()

wxString ilog::Project::GetSourceName ()

wxString ilog::Project::GetTitle ()

void ilog::Project::SetContributors (const std::vector< wxString > & names)

void ilog::Project::SetCreators (const std::vector< wxString > & names)

void ilog::Project::SetDate (const wxString & date)

void ilog::Project::SetDescription (const wxString & desc)

void ilog::Project::SetName (const wxString & name)

void ilog::Project::SetPublisher (const wxString & publisher)

void ilog::Project::SetTitle (const wxString & title)

Friends And Related Function Documentation

friend class ProjectManager [friend]

ilog::ProjectManager Class Reference A singleton class that manages the global state of the current project.

#include <project_manager.h>

171

Public Member Functions

~ProjectManager ()

Project & CreateNewProject (As::FlashInterface::Ptr flash_interface)

Project & CurrentProject ()

wxFileName GetProjectDirectory () const

void PublishProject (wxFileName name, As::FlashInterface::Ptr flash_interface)

void LoadProject (wxFileName full_path, As::FlashInterface::Ptr flash_interface)

void SaveProject (wxFileName full_path, As::FlashInterface::Ptr flash_interface)

Static Public Member Functions

static ProjectManager & instance () throw ()

Friends

class Project

Detailed Description

A singleton class that manages the global state of the current project.

Constructor & Destructor Documentation

ilog::ProjectManager::~ProjectManager () [inline]

Member Function Documentation

Project& ilog::ProjectManager::CreateNewProject (As::FlashInterface::Ptr flash_interface)

Create an empty project in the given FlashInterface.

Project& ilog::ProjectManager::CurrentProject ()

Get the current Project object.

wxFileName ilog::ProjectManager::GetProjectDirectory () const

Get the directory containing the project file.

static ProjectManager& ilog::ProjectManager::instance () throw () [inline, static]

void ilog::ProjectManager::LoadProject (wxFileName full_path, As::FlashInterface::Ptr flash_interface)

Load the project file at the given path.

void ilog::ProjectManager::PublishProject (wxFileName name, As::FlashInterface::Ptr flash_interface)

Pushlish the project to a Flash executable.

172

void ilog::ProjectManager::SaveProject (wxFileName full_path, As::FlashInterface::Ptr flash_interface)

Save the project file to the given path.

Friends And Related Function Documentation

friend class Project [friend]

ilog::qti::Prompt Class Reference

#include <content_model.h>

Inheritance diagram for ilog::qti::Prompt:

Public Types

typedef shared_ptr< Prompt > Ptr

Public Member Functions

wxString GetName () const

wxString Instantiate (shared_ptr< As::FlashInterface > flash_interface, As::ComponentHandle

parent, int style=0)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

Protected Member Functions

Prompt ()

Prompt (const wxXmlNode *root_node)

173

Member Typedef Documentation

typedef shared_ptr<Prompt> ilog::qti::Prompt::Ptr

Reimplemented from ilog::qti::BodyElement (p.55).

Constructor & Destructor Documentation

ilog::qti::Prompt::Prompt () [protected]

ilog::qti::Prompt::Prompt (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::Prompt::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::Prompt::Create () [static]

wxString ilog::qti::Prompt::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::Prompt::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::BodyElement (p.57).

wxString ilog::qti::Prompt::Instantiate (shared_ptr< As::FlashInterface > flash_interface,

As::ComponentHandle parent, int style = 0) [virtual]

This function creates a tree of Flash graphical objects to which the BodyElement can be

mapped, and returns a mapping describing which graphical component corresponds to which

QTI component ID.

Implements ilog::qti::IInstantiable (p.123).

wxXmlNode* ilog::qti::Prompt::Serialize () const [virtual]

Reimplemented from ilog::qti::BodyElement (p.57).

174

ilog::PropertiesDisplayPanel Class Reference An abstract wxPanel subclass that implements the IPropertiesDisplayer interface.

#include <properties_display_panel.h>

Inheritance diagram for ilog::PropertiesDisplayPanel:

Public Member Functions

PropertiesDisplayPanel (wxWindow *parent, wxWindowID id, const wxPoint

&pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0)

virtual ~PropertiesDisplayPanel ()

Detailed Description

An abstract wxPanel subclass that implements the IPropertiesDisplayer interface.

Constructor & Destructor Documentation

ilog::PropertiesDisplayPanel::PropertiesDisplayPanel (wxWindow * parent, wxWindowID

id, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize,

long style = 0) [inline]

virtual ilog::PropertiesDisplayPanel::~PropertiesDisplayPanel () [inline, virtual]

ilog::PropertiesPanel Class Reference

#include <properties_panel.h>

Inheritance diagram for ilog::PropertiesPanel:

Public Member Functions

PropertiesPanel (wxWindow *parent, wxWindowID id, As::FlashInterface::Ptr flash_interface)

~PropertiesPanel ()

void DisplayPropertiesFor (As::ComponentHandle h_comp)

175

Detailed Description

Deprecated:

Constructor & Destructor Documentation

ilog::PropertiesPanel::PropertiesPanel (wxWindow * parent, wxWindowID id, As::FlashInterface::Ptr flash_interface)

ilog::PropertiesPanel::~PropertiesPanel ()

Member Function Documentation

void ilog::PropertiesPanel::DisplayPropertiesFor (As::ComponentHandle h_comp) [virtual]

Display all properties for the given component that the control supports.

Implements ilog::IPropertiesDisplayer (p.132).

ilog::As::PropertyCache Class Reference A cache for the properties of Flash components featuring constant-time lookup.

#include <property_cache.h>

Public Member Functions

PropertyCache (IFlashPlayer *flash_player)

void Clear ()

void Clear (ComponentHandle h_comp)

void Clear (ComponentHandle h_comp, const wxString &prop_name)

std::pair< AnyType, bool > GetCached (ComponentHandle h_comp, const wxString &prop_name)

const

Object GetModifiedProperties (ComponentHandle h_comp) const

Object GetProperties (ComponentHandle h_comp, const std::vector< wxString > &prop_names)

const

AnyType GetProperty (ComponentHandle h_comp, const wxString &prop_name) const

void MarkDirty (ComponentHandle h_comp, const wxString &prop_name)

void SetProperties (ComponentHandle h_comp, Object properties)

void SetProperty (ComponentHandle h_comp, const wxString &prop_name, AnyType value)

Detailed Description

A cache for the properties of Flash components featuring constant-time lookup.

176

Getting a property value of a Flash component is by far the most commonly used operation

requiring message passing between C++ and Flash. Not only is the call across the C++ <-> Flash

communication channel expensive, but it also requires a key lookup on the Flash side, which is

much slower than the same operation in C++. The PropertyCache class stores the properties of

Flash components on first access, enabling subsequent GetProperty requests for previously-

accessed properties to be completed in constant time while bypassing the C++ -> Flash -> C++

round trip.

To use PropertyCache, initialize an instance with the IFlashPlayer instance for which you want

to cache properties, and make sure that all Get/Set property calls on that flash player delegate to

the PropertyCache.

Constructor & Destructor Documentation

ilog::As::PropertyCache::PropertyCache (IFlashPlayer * flash_player) [explicit]

Construct a PropertyCache for the given IFlashPlayer instance.

'flash_interface' must not be NULL and must not be deleted as long as the PropertyCache

instance is being used. Calls to PropertyCache functions do not check the internal

IFlashPlayer pointer.

Member Function Documentation

void ilog::As::PropertyCache::Clear (ComponentHandle h_comp, const wxString & prop_name)

Clear the cache entry for property 'prop_name' of component 'h_comp'.

void ilog::As::PropertyCache::Clear (ComponentHandle h_comp)

Clear the cache for component 'h_comp'.

void ilog::As::PropertyCache::Clear ()

Clear the entire cache.

std::pair<AnyType, bool> ilog::As::PropertyCache::GetCached (ComponentHandle h_comp, const wxString & prop_name) const

Get the cached value of property 'prop_name' for component 'h_comp'.

If the bool part of the returned pair is false, the cached value is not valid, either because no

value has been cached for this property or because it is dirty.

Object ilog::As::PropertyCache::GetModifiedProperties (ComponentHandle h_comp) const

Object ilog::As::PropertyCache::GetProperties (ComponentHandle h_comp, const std::vector< wxString > & prop_names) const

Get the values of the properties named in 'prop_names' for component 'h_comp'.

AnyType ilog::As::PropertyCache::GetProperty (ComponentHandle h_comp, const wxString & prop_name) const

Get the value of property 'prop_name' for component 'h_comp'.

177

void ilog::As::PropertyCache::MarkDirty (ComponentHandle h_comp, const wxString & prop_name)

Tell the cache that it needs to refresh the value of 'prop_name' for component 'h_comp' the

next time it is looked up, but do not remove the entry from the cache.

This function is more efficient than Clear( h_comp, prop_name ) because the cache will not

have to re-allocate storage for the property if it is accessed again.

void ilog::As::PropertyCache::SetProperties (ComponentHandle h_comp, Object properties)

Set the values of the properties of h_comp to those in 'properties'.

An entry will be added to the cache for each property, and exactly one C++ -> Flash call will

be made.

void ilog::As::PropertyCache::SetProperty (ComponentHandle h_comp, const wxString & prop_name, AnyType value)

Set the value of property 'prop_name' of component 'h_comp' to 'value'.

An entry will be added to the cache, and any "Get" requests for the property that occur before

the next "Set" request will return the cached value instead of calling to Flash.

ilog::PropertyEditor Class Reference A control for editing the properties of a Flash graphical component.

#include <property_editor.h>

Inheritance diagram for ilog::PropertyEditor:

Public Member Functions

PropertyEditor (wxWindow *parent, wxWindowID id, As::FlashInterface::Ptr flash_interface)

void DisplayPropertiesFor (As::ComponentHandle h_comp)

void RefreshProperty (const wxString &name)

void OnPropertyChanging (wxPropertyGridEvent &evt)

Detailed Description

A control for editing the properties of a Flash graphical component.

178

Constructor & Destructor Documentation

ilog::PropertyEditor::PropertyEditor (wxWindow * parent, wxWindowID id, As::FlashInterface::Ptr flash_interface)

Member Function Documentation

void ilog::PropertyEditor::DisplayPropertiesFor (As::ComponentHandle h_comp) [virtual]

Display properties for the given component.

Implements ilog::IPropertiesDisplayer (p.132).

void ilog::PropertyEditor::OnPropertyChanging (wxPropertyGridEvent & evt)

void ilog::PropertyEditor::RefreshProperty (const wxString & name)

Refresh the property with the given name.

ilog::PublishDialog Class Reference A dialog box that allows users to enter Flash publish metadata.

#include <publish_dialog.h>

Public Member Functions

PublishDialog (wxWindow *parent, wxWindowID id)

~PublishDialog ()

Detailed Description

A dialog box that allows users to enter Flash publish metadata.

Constructor & Destructor Documentation

ilog::PublishDialog::PublishDialog (wxWindow * parent, wxWindowID id)

ilog::PublishDialog::~PublishDialog ()

ilog::As::RangeError Class Reference

#include <exceptions.h>

Inheritance diagram for ilog::As::RangeError:

179

Public Member Functions

RangeError (const wxString &what)

Constructor & Destructor Documentation

ilog::As::RangeError::RangeError (const wxString & what) [inline]

ilog::As::ReferenceError Class Reference

#include <exceptions.h>

Inheritance diagram for ilog::As::ReferenceError:

Public Member Functions

ReferenceError (const wxString &what)

Constructor & Destructor Documentation

ilog::As::ReferenceError::ReferenceError (const wxString & what) [inline]

ilog::RemoveComponentCommand Class Reference A command that removes an Actionscript component from the screen.

#include <component_command.h>

Public Member Functions

RemoveComponentCommand (const wxString &name, As::FlashInterface::Ptr flash_interface,

As::ComponentHandle h_comp)

~RemoveComponentCommand ()

bool Do ()

bool Undo ()

180

Detailed Description

A command that removes an Actionscript component from the screen.

This command is used to implement both 'Delete' and 'Cut' operations.

Constructor & Destructor Documentation

ilog::RemoveComponentCommand::RemoveComponentCommand (const wxString & name, As::FlashInterface::Ptr flash_interface, As::ComponentHandle h_comp)

ilog::RemoveComponentCommand::~RemoveComponentCommand ()

Member Function Documentation

bool ilog::RemoveComponentCommand::Do ()

bool ilog::RemoveComponentCommand::Undo ()

ilog::qti::ResponseCondition Class Reference #include <response_processing.h>

Inheritance diagram for ilog::qti::ResponseCondition:

Public Types

typedef shared_ptr< ResponseCondition > Ptr

Public Member Functions

wxString GetName () const

ResponseIf::Ptr GetResponseIf () const

ResponseElse::Ptr GetResponseElse () const

void SetResponseElse (ResponseElse::Ptr response_else)

181

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

ResponseCondition (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (ResponseIf::Ptr response_if)

Public Attributes

ResponseIf::Ptr m_pResponseIf

std::vector< ResponseElseIf::Ptr > m_ResponseElseIfs

ResponseElse::Ptr m_pResponseElse

Member Typedef Documentation

typedef shared_ptr<ResponseCondition> ilog::qti::ResponseCondition::Ptr

Reimplemented from ilog::qti::ResponseRule (p.192).

Constructor & Destructor Documentation

ilog::qti::ResponseCondition::ResponseCondition (const wxXmlNode * root_node) [explicit]

Member Function Documentation

static Ptr ilog::qti::ResponseCondition::Create (ResponseIf::Ptr response_if) [static]

static Ptr ilog::qti::ResponseCondition::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::ResponseCondition::Create () [static]

wxString ilog::qti::ResponseCondition::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

182

ResponseElse::Ptr ilog::qti::ResponseCondition::GetResponseElse () const [inline]

ResponseIf::Ptr ilog::qti::ResponseCondition::GetResponseIf () const [inline]

void ilog::qti::ResponseCondition::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::ResponseCondition::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

void ilog::qti::ResponseCondition::SetResponseElse (ResponseElse::Ptr response_else) [inline]

Member Data Documentation

ResponseElse::Ptr ilog::qti::ResponseCondition::m_pResponseElse

ResponseIf::Ptr ilog::qti::ResponseCondition::m_pResponseIf

std::vector<ResponseElseIf::Ptr> ilog::qti::ResponseCondition::m_ResponseElseIfs

ilog::qti::ResponseDeclaration Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::ResponseDeclaration:

Public Types

typedef shared_ptr< ResponseDeclaration > Ptr

Public Member Functions

wxString GetName () const

CorrectResponse::Ptr GetCorrectResponse () const

183

void SetCorrectResponse (CorrectResponse::Ptr response)

Mapping::Ptr GetMapping () const

void SetMapping (Mapping::Ptr mapping)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Cardinality card, BaseType base_type, CorrectResponse::Ptr

correct_response=CorrectResponse::Ptr(), Mapping::Ptr mapping=Mapping::Ptr())

Protected Member Functions

ResponseDeclaration ()

ResponseDeclaration (Cardinality card, BaseType base_type, CorrectResponse::Ptr

correct_response=CorrectResponse::Ptr(), Mapping::Ptr mapping=Mapping::Ptr())

ResponseDeclaration (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<ResponseDeclaration> ilog::qti::ResponseDeclaration::Ptr

Reimplemented from ilog::qti::VariableDeclaration (p.216).

Constructor & Destructor Documentation

ilog::qti::ResponseDeclaration::ResponseDeclaration () [protected]

ilog::qti::ResponseDeclaration::ResponseDeclaration (Cardinality card, BaseType

base_type, CorrectResponse::Ptr correct_response = CorrectResponse::Ptr(),

Mapping::Ptr mapping = Mapping::Ptr()) [protected]

ilog::qti::ResponseDeclaration::ResponseDeclaration (const wxXmlNode * root_node) [explicit, protected]

184

Member Function Documentation

static Ptr ilog::qti::ResponseDeclaration::Create (Cardinality card, BaseType base_type, CorrectResponse::Ptr correct_response = CorrectResponse::Ptr(), Mapping::Ptr

mapping = Mapping::Ptr()) [static]

static Ptr ilog::qti::ResponseDeclaration::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::ResponseDeclaration::Create () [static]

CorrectResponse::Ptr ilog::qti::ResponseDeclaration::GetCorrectResponse () const [inline]

Mapping::Ptr ilog::qti::ResponseDeclaration::GetMapping () const [inline]

wxString ilog::qti::ResponseDeclaration::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::ResponseDeclaration::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::VariableDeclaration (p.217).

wxXmlNode* ilog::qti::ResponseDeclaration::Serialize () const [virtual]

Reimplemented from ilog::qti::VariableDeclaration (p.217).

void ilog::qti::ResponseDeclaration::SetCorrectResponse (CorrectResponse::Ptr

response) [inline]

void ilog::qti::ResponseDeclaration::SetMapping (Mapping::Ptr mapping) [inline]

ilog::qti::ResponseElse Class Reference

#include <response_processing.h>

Inheritance diagram for ilog::qti::ResponseElse:

185

Public Types

typedef shared_ptr< ResponseElse > Ptr

Public Member Functions

wxString GetName () const

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

Protected Member Functions

ResponseElse ()

ResponseElse (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<ResponseElse> ilog::qti::ResponseElse::Ptr

Reimplemented from ilog::qti::Element (p.94).

Constructor & Destructor Documentation

ilog::qti::ResponseElse::ResponseElse () [protected]

ilog::qti::ResponseElse::ResponseElse (const wxXmlNode * root_node) [explicit, protected]

186

Member Function Documentation

static Ptr ilog::qti::ResponseElse::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::ResponseElse::Create () [static]

wxString ilog::qti::ResponseElse::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::ResponseElse::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::ResponseElse::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

ilog::qti::ResponseElseIf Class Reference #include <response_processing.h>

Inheritance diagram for ilog::qti::ResponseElseIf:

Public Types

typedef shared_ptr< ResponseElseIf > Ptr

Public Member Functions

wxString GetName () const

187

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Expression::Ptr ex)

Protected Member Functions

ResponseElseIf ()

ResponseElseIf (Expression::Ptr ex)

ResponseElseIf (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<ResponseElseIf> ilog::qti::ResponseElseIf::Ptr

Reimplemented from ilog::qti::ResponseIf (p.188).

Constructor & Destructor Documentation

ilog::qti::ResponseElseIf::ResponseElseIf () [protected]

ilog::qti::ResponseElseIf::ResponseElseIf (Expression::Ptr ex) [explicit, protected]

ilog::qti::ResponseElseIf::ResponseElseIf (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::ResponseElseIf::Create (Expression::Ptr ex) [static]

Reimplemented from ilog::qti::ResponseIf (p.189).

static Ptr ilog::qti::ResponseElseIf::Create (const wxXmlNode * root_node) [static]

Reimplemented from ilog::qti::ResponseIf (p.189).

static Ptr ilog::qti::ResponseElseIf::Create () [static]

Reimplemented from ilog::qti::ResponseIf (p.189).

wxString ilog::qti::ResponseElseIf::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Reimplemented from ilog::qti::ResponseIf (p.189).

188

ilog::qti::ResponseIf Class Reference #include <response_processing.h>

Inheritance diagram for ilog::qti::ResponseIf:

Public Types

typedef shared_ptr< ResponseIf > Ptr

Public Member Functions

wxString GetName () const

Expression::Ptr GetExpression () const

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Expression::Ptr ex)

Protected Member Functions

ResponseIf ()

ResponseIf (Expression::Ptr ex)

ResponseIf (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<ResponseIf> ilog::qti::ResponseIf::Ptr

Reimplemented from ilog::qti::Element (p.94).

Reimplemented in ilog::qti::ResponseElseIf (p.187).

189

Constructor & Destructor Documentation

ilog::qti::ResponseIf::ResponseIf () [protected]

ilog::qti::ResponseIf::ResponseIf (Expression::Ptr ex) [explicit, protected]

ilog::qti::ResponseIf::ResponseIf (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::ResponseIf::Create (Expression::Ptr ex) [static]

Reimplemented in ilog::qti::ResponseElseIf (p.187).

static Ptr ilog::qti::ResponseIf::Create (const wxXmlNode * root_node) [static]

Reimplemented in ilog::qti::ResponseElseIf (p.187).

static Ptr ilog::qti::ResponseIf::Create () [static]

Reimplemented in ilog::qti::ResponseElseIf (p.187).

Expression::Ptr ilog::qti::ResponseIf::GetExpression () const [inline]

wxString ilog::qti::ResponseIf::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

Reimplemented in ilog::qti::ResponseElseIf (p.187).

void ilog::qti::ResponseIf::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::ResponseIf::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

ilog::qti::ResponseProcessing Class Reference #include <response_processing.h>

Inheritance diagram for ilog::qti::ResponseProcessing:

190

Public Types

typedef shared_ptr< ResponseProcessing > Ptr

Public Member Functions

wxString GetName () const

Uri GetTemplate () const

void SetTemplate (Uri template_uri)

Uri GetTemplateLocation () const

void SetTemplateLocation (Uri template_location)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create (Uri template_uri=Uri(), Uri template_location=Uri())

static Ptr Create (const wxXmlNode *root_node)

Protected Member Functions

ResponseProcessing (Uri template_uri=Uri(), Uri template_location=Uri())

ResponseProcessing (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<ResponseProcessing> ilog::qti::ResponseProcessing::Ptr

Reimplemented from ilog::qti::Element (p.94).

Constructor & Destructor Documentation

ilog::qti::ResponseProcessing::ResponseProcessing (Uri template_uri = Uri(), Uri

template_location = Uri()) [explicit, protected]

ilog::qti::ResponseProcessing::ResponseProcessing (const wxXmlNode * root_node) [explicit, protected]

191

Member Function Documentation

static Ptr ilog::qti::ResponseProcessing::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::ResponseProcessing::Create (Uri template_uri = Uri(), Uri

template_location = Uri()) [static]

wxString ilog::qti::ResponseProcessing::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

Uri ilog::qti::ResponseProcessing::GetTemplate () const [inline]

Uri ilog::qti::ResponseProcessing::GetTemplateLocation () const [inline]

void ilog::qti::ResponseProcessing::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::ResponseProcessing::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

void ilog::qti::ResponseProcessing::SetTemplate (Uri template_uri) [inline]

void ilog::qti::ResponseProcessing::SetTemplateLocation (Uri template_location) [inline]

ilog::qti::ResponseProcessingFragment Class Reference #include <response_processing.h>

Inheritance diagram for ilog::qti::ResponseProcessingFragment:

192

ilog::qti::ResponseRule Class Reference #include <response_processing.h>

Inheritance diagram for ilog::qti::ResponseRule:

Public Types

typedef shared_ptr< ResponseRule > Ptr

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<ResponseRule> ilog::qti::ResponseRule::Ptr

Reimplemented from ilog::qti::Element (p.94).

Reimplemented in ilog::qti::ResponseCondition (p.181), and ilog::qti::SetOutcomeValue (p.194).

Member Function Documentation

static Ptr ilog::qti::ResponseRule::CreateFromXml (const wxXmlNode * root_node) [static]

193

ilog::SetComponentPropertyCommand Class Reference A command that sets one or more properties of an Actionscript component.

#include <component_command.h>

Public Member Functions

SetComponentPropertyCommand (const wxString &name, As::FlashInterface::Ptr

flash_interface, As::ComponentHandle h_comp, As::Object prop_map)

SetComponentPropertyCommand (const wxString &name, As::FlashInterface::Ptr

flash_interface, As::ComponentHandle h_comp, const wxString &prop_name, const As::AnyType

&prop_val)

~SetComponentPropertyCommand ()

bool Do ()

bool Undo ()

Detailed Description

A command that sets one or more properties of an Actionscript component.

Constructor & Destructor Documentation

ilog::SetComponentPropertyCommand::SetComponentPropertyCommand (const wxString & name, As::FlashInterface::Ptr flash_interface, As::ComponentHandle h_comp, As::Object prop_map)

Constructor.

Use this overload to set more than one property in one operation.

ilog::SetComponentPropertyCommand::SetComponentPropertyCommand (const wxString & name, As::FlashInterface::Ptr flash_interface, As::ComponentHandle h_comp, const wxString & prop_name, const As::AnyType & prop_val)

Constructor.

Use this overload to set a single property.

ilog::SetComponentPropertyCommand::~SetComponentPropertyCommand ()

Member Function Documentation

bool ilog::SetComponentPropertyCommand::Do ()

bool ilog::SetComponentPropertyCommand::Undo ()

ilog::qti::SetOutcomeValue Class Reference #include <response_processing.h>

194

Inheritance diagram for ilog::qti::SetOutcomeValue:

Public Types

typedef shared_ptr< SetOutcomeValue > Ptr

Public Member Functions

wxString GetName () const

Identifier GetIdentifier () const

Expression::Ptr GetExpression () const

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Identifier id, Expression::Ptr expression)

Protected Member Functions

SetOutcomeValue ()

SetOutcomeValue (Identifier id, Expression::Ptr expression)

SetOutcomeValue (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<SetOutcomeValue> ilog::qti::SetOutcomeValue::Ptr

Reimplemented from ilog::qti::OutcomeRule (p.169).

195

Constructor & Destructor Documentation

ilog::qti::SetOutcomeValue::SetOutcomeValue () [protected]

ilog::qti::SetOutcomeValue::SetOutcomeValue (Identifier id, Expression::Ptr expression) [protected]

ilog::qti::SetOutcomeValue::SetOutcomeValue (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::SetOutcomeValue::Create (Identifier id, Expression::Ptr expression) [static]

static Ptr ilog::qti::SetOutcomeValue::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::SetOutcomeValue::Create () [static]

Expression::Ptr ilog::qti::SetOutcomeValue::GetExpression () const [inline]

Identifier ilog::qti::SetOutcomeValue::GetIdentifier () const [inline]

wxString ilog::qti::SetOutcomeValue::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::SetOutcomeValue::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::SetOutcomeValue::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

ilog::SharedPointerComparator< T > Class Template Reference Generic comparator for using shared_ptr objects as keys in ordered associative containers.

#include <shared_pointer_comparator.h>

Public Member Functions

SharedPointerComparator ()

196

int operator() (shared_ptr< T > a, shared_ptr< T > b)

Detailed Description

template<typename T> class ilog::SharedPointerComparator< T >

Generic comparator for using shared_ptr objects as keys in ordered associative containers.

Compares pointers by pointer address.

Constructor & Destructor Documentation

template<typename T > ilog::SharedPointerComparator< T >::SharedPointerComparator () [inline]

Member Function Documentation

template<typename T > int ilog::SharedPointerComparator< T >::operator() (shared_ptr< T > a, shared_ptr< T > b) [inline]

ilog::qti::SimpleAssociableChoice Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::SimpleAssociableChoice:

Public Types

typedef shared_ptr< SimpleAssociableChoice > Ptr

197

Public Member Functions

wxString GetName () const

Integer GetMatchMax () const

void SetMatchMax (Integer match_max)

Integer GetMatchMin () const

void SetMatchMin (Integer match_min)

bool IsSourceChoice () const

bool IsTargetChoice () const

void MakeSourceChoice ()

void MakeTargetChoice ()

virtual wxString Instantiate (shared_ptr< As::FlashInterface > flash_interface,

As::ComponentHandle parent, int style=0)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Integer match_max, Integer match_min=0)

Protected Member Functions

SimpleAssociableChoice ()

SimpleAssociableChoice (Integer match_max, Integer match_min=0)

SimpleAssociableChoice (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<SimpleAssociableChoice> ilog::qti::SimpleAssociableChoice::Ptr

Reimplemented from ilog::qti::AssociableChoice (p.49).

Constructor & Destructor Documentation

ilog::qti::SimpleAssociableChoice::SimpleAssociableChoice () [protected]

ilog::qti::SimpleAssociableChoice::SimpleAssociableChoice (Integer match_max, Integer

match_min = 0) [explicit, protected]

ilog::qti::SimpleAssociableChoice::SimpleAssociableChoice (const wxXmlNode *

root_node) [explicit, protected]

198

Member Function Documentation

static Ptr ilog::qti::SimpleAssociableChoice::Create (Integer match_max, Integer match_min = 0) [static]

static Ptr ilog::qti::SimpleAssociableChoice::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::SimpleAssociableChoice::Create () [static]

Integer ilog::qti::SimpleAssociableChoice::GetMatchMax () const [inline]

Integer ilog::qti::SimpleAssociableChoice::GetMatchMin () const [inline]

wxString ilog::qti::SimpleAssociableChoice::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::SimpleAssociableChoice::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::AssociableChoice (p.49).

virtual wxString ilog::qti::SimpleAssociableChoice::Instantiate (shared_ptr<

As::FlashInterface > flash_interface, As::ComponentHandle parent, int style = 0) [virtual]

This function creates a tree of Flash graphical objects to which the BodyElement can be

mapped, and returns a mapping describing which graphical component corresponds to which

QTI component ID.

Implements ilog::qti::IInstantiable (p.123).

bool ilog::qti::SimpleAssociableChoice::IsSourceChoice () const [inline]

bool ilog::qti::SimpleAssociableChoice::IsTargetChoice () const [inline]

void ilog::qti::SimpleAssociableChoice::MakeSourceChoice () [inline]

void ilog::qti::SimpleAssociableChoice::MakeTargetChoice () [inline]

wxXmlNode* ilog::qti::SimpleAssociableChoice::Serialize () const [virtual]

Reimplemented from ilog::qti::AssociableChoice (p.50).

199

void ilog::qti::SimpleAssociableChoice::SetMatchMax (Integer match_max) [inline]

void ilog::qti::SimpleAssociableChoice::SetMatchMin (Integer match_min) [inline]

ilog::qti::SimpleChoice Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::SimpleChoice:

Public Types

typedef shared_ptr< SimpleChoice > Ptr

Public Member Functions

wxString GetName () const

wxString Instantiate (shared_ptr< As::FlashInterface > flash_interface, As::ComponentHandle

parent, int style=0)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

Protected Member Functions

SimpleChoice ()

SimpleChoice (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<SimpleChoice> ilog::qti::SimpleChoice::Ptr

200

Reimplemented from ilog::qti::Choice (p.62).

Constructor & Destructor Documentation

ilog::qti::SimpleChoice::SimpleChoice () [protected]

ilog::qti::SimpleChoice::SimpleChoice (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::SimpleChoice::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::SimpleChoice::Create () [static]

wxString ilog::qti::SimpleChoice::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::SimpleChoice::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::Choice (p.63).

wxString ilog::qti::SimpleChoice::Instantiate (shared_ptr< As::FlashInterface >

flash_interface, As::ComponentHandle parent, int style = 0) [virtual]

This function creates a tree of Flash graphical objects to which the BodyElement can be

mapped, and returns a mapping describing which graphical component corresponds to which

QTI component ID.

Implements ilog::qti::IInstantiable (p.123).

wxXmlNode* ilog::qti::SimpleChoice::Serialize () const [virtual]

Reimplemented from ilog::qti::Choice (p.63).

ilog::qti::SimpleInline Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::SimpleInline:

201

Public Types

typedef shared_ptr< SimpleInline > Ptr

Public Member Functions

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr CreateFromXml (const wxXmlNode *root_node)

Protected Member Functions

SimpleInline (Uri base=Uri())

SimpleInline (const wxXmlNode *root_node)

Protected Attributes

std::vector< Inline::Ptr > m_Children

Member Typedef Documentation

typedef shared_ptr<SimpleInline> ilog::qti::SimpleInline::Ptr

Reimplemented from ilog::qti::BodyElement (p.55).

Reimplemented in ilog::qti::Span (p.206).

202

Constructor & Destructor Documentation

ilog::qti::SimpleInline::SimpleInline (Uri base = Uri()) [explicit, protected]

ilog::qti::SimpleInline::SimpleInline (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::SimpleInline::CreateFromXml (const wxXmlNode * root_node) [static]

Reimplemented from ilog::qti::FlowStatic (p.111).

void ilog::qti::SimpleInline::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::BodyElement (p.57).

Reimplemented in ilog::qti::Span (p.207).

wxXmlNode* ilog::qti::SimpleInline::Serialize () const [virtual]

Reimplemented from ilog::qti::BodyElement (p.57).

Reimplemented in ilog::qti::Span (p.207).

Member Data Documentation

std::vector<Inline::Ptr> ilog::qti::SimpleInline::m_Children [protected]

Reimplemented from ilog::qti::Element (p.92).

ilog::qti::SimpleMatchSet Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::SimpleMatchSet:

203

Public Types

typedef shared_ptr< SimpleMatchSet > Ptr

Public Member Functions

wxString GetName () const

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

Protected Member Functions

SimpleMatchSet ()

SimpleMatchSet (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<SimpleMatchSet> ilog::qti::SimpleMatchSet::Ptr

Reimplemented from ilog::qti::Element (p.94).

Constructor & Destructor Documentation

ilog::qti::SimpleMatchSet::SimpleMatchSet () [protected]

ilog::qti::SimpleMatchSet::SimpleMatchSet (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::SimpleMatchSet::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::SimpleMatchSet::Create () [static]

wxString ilog::qti::SimpleMatchSet::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::SimpleMatchSet::InitializeFromXml (const wxXmlNode * root_node) [virtual]

204

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::SimpleMatchSet::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

ilog::SlideChooser Class Reference A panel that hosts the Flash-based slide chooser.

#include <organizer_notebook.h>

Public Member Functions

SlideChooser (wxWindow *parent, wxWindowID id, As::FlashInterface::Ptr flash_interface, const

wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString

&name=wxPanelNameStr)

~SlideChooser ()

void OnContextMenu (wxContextMenuEvent &evt)

void OnContextAddBefore (wxCommandEvent &evt)

void OnContextAddAfter (wxCommandEvent &evt)

void OnContextRemove (wxCommandEvent &evt)

void OnContextProperties (wxCommandEvent &evt)

SlideChooser (wxWindow *parent, wxWindowID id, As::FlashInterface::Ptr flash_interface, const

wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString

&name=wxPanelNameStr)

~SlideChooser ()

void OnContextMenu (wxContextMenuEvent &evt)

void OnContextAddBefore (wxCommandEvent &evt)

void OnContextAddAfter (wxCommandEvent &evt)

void OnContextRemove (wxCommandEvent &evt)

void OnContextProperties (wxCommandEvent &evt)

Detailed Description

A panel that hosts the Flash-based slide chooser.

Constructor & Destructor Documentation

ilog::SlideChooser::SlideChooser (wxWindow * parent, wxWindowID id,

As::FlashInterface::Ptr flash_interface, const wxPoint & pos = wxDefaultPosition,

const wxSize & size = wxDefaultSize, long style = 0, const wxString & name =

wxPanelNameStr)

ilog::SlideChooser::~SlideChooser ()

ilog::SlideChooser::SlideChooser (wxWindow * parent, wxWindowID id,

As::FlashInterface::Ptr flash_interface, const wxPoint & pos = wxDefaultPosition,

205

const wxSize & size = wxDefaultSize, long style = 0, const wxString & name =

wxPanelNameStr)

ilog::SlideChooser::~SlideChooser ()

Member Function Documentation

void ilog::SlideChooser::OnContextAddAfter (wxCommandEvent & evt)

void ilog::SlideChooser::OnContextAddAfter (wxCommandEvent & evt)

void ilog::SlideChooser::OnContextAddBefore (wxCommandEvent & evt)

void ilog::SlideChooser::OnContextAddBefore (wxCommandEvent & evt)

void ilog::SlideChooser::OnContextMenu (wxContextMenuEvent & evt)

void ilog::SlideChooser::OnContextMenu (wxContextMenuEvent & evt)

void ilog::SlideChooser::OnContextProperties (wxCommandEvent & evt)

void ilog::SlideChooser::OnContextProperties (wxCommandEvent & evt)

void ilog::SlideChooser::OnContextRemove (wxCommandEvent & evt)

void ilog::SlideChooser::OnContextRemove (wxCommandEvent & evt)

ilog::qti::Span Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::Span:

206

Public Types

typedef shared_ptr< Span > Ptr

Public Member Functions

wxString GetName () const

wxString Instantiate (shared_ptr< As::FlashInterface > flash_interface, As::ComponentHandle

parent, int style=0)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

String ToString () const

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (const String &text, Uri base=Uri())

Protected Member Functions

Span ()

Span (const String &text, Uri base=Uri())

Span (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<Span> ilog::qti::Span::Ptr

Reimplemented from ilog::qti::SimpleInline (p.201).

207

Constructor & Destructor Documentation

ilog::qti::Span::Span () [protected]

ilog::qti::Span::Span (const String & text, Uri base = Uri()) [explicit, protected]

ilog::qti::Span::Span (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::Span::Create (const String & text, Uri base = Uri()) [static]

static Ptr ilog::qti::Span::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::Span::Create () [static]

wxString ilog::qti::Span::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::Span::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::SimpleInline (p.202).

wxString ilog::qti::Span::Instantiate (shared_ptr< As::FlashInterface > flash_interface, As::ComponentHandle parent, int style = 0) [virtual]

This function creates a tree of Flash graphical objects to which the BodyElement can be

mapped, and returns a mapping describing which graphical component corresponds to which

QTI component ID.

Implements ilog::qti::IInstantiable (p.123).

wxXmlNode* ilog::qti::Span::Serialize () const [virtual]

Reimplemented from ilog::qti::SimpleInline (p.202).

String ilog::qti::Span::ToString () const [inline, virtual]

This method should return a string representation of the Inline element.

This may mean ignoring nested elements that do not have a string representation.

Implements ilog::qti::Inline (p.125).

208

ilog::As::StackOverflowError Class Reference #include <exceptions.h>

Inheritance diagram for ilog::As::StackOverflowError:

Public Member Functions

StackOverflowError (const wxString &what)

Constructor & Destructor Documentation

ilog::As::StackOverflowError::StackOverflowError (const wxString & what) [inline]

ilog::As::SyntaxError Class Reference #include <exceptions.h>

Inheritance diagram for ilog::As::SyntaxError:

Public Member Functions

SyntaxError (const wxString &what)

Constructor & Destructor Documentation

ilog::As::SyntaxError::SyntaxError (const wxString & what) [inline]

ilog::qti::TextRun Class Reference #include <content_model.h>

Inheritance diagram for ilog::qti::TextRun:

209

Public Types

typedef shared_ptr< TextRun > Ptr

Public Member Functions

wxString GetName () const

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

String ToString () const

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (const String &text, Uri base=Uri())

Protected Member Functions

TextRun ()

TextRun (const String &text, Uri base=Uri())

TextRun (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<TextRun> ilog::qti::TextRun::Ptr

Reimplemented from ilog::qti::FlowStatic (p.110).

210

Constructor & Destructor Documentation

ilog::qti::TextRun::TextRun () [protected]

ilog::qti::TextRun::TextRun (const String & text, Uri base = Uri()) [explicit, protected]

ilog::qti::TextRun::TextRun (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::TextRun::Create (const String & text, Uri base = Uri()) [static]

static Ptr ilog::qti::TextRun::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::TextRun::Create () [static]

wxString ilog::qti::TextRun::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

void ilog::qti::TextRun::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::FlowStatic (p.111).

wxXmlNode* ilog::qti::TextRun::Serialize () const [virtual]

Reimplemented from ilog::qti::Flow (p.109).

String ilog::qti::TextRun::ToString () const [inline, virtual]

This method should return a string representation of the Inline element.

This may mean ignoring nested elements that do not have a string representation.

Implements ilog::qti::Inline (p.125).

ilog::TopFrame Class Reference The main wxFrame subclass for the application.

#include <top_frame.h>

Public Member Functions

TopFrame ()

211

TopFrame (wxDocManager *doc_mgr)

~TopFrame ()

void OnTerminate (wxCloseEvent &evt)

void OnExit (wxCommandEvent &evt)

void OnAbout (wxCommandEvent &evt)

void OnPublishToFlash (wxCommandEvent &evt)

void OnAddSlide (wxCommandEvent &evt)

void OnRemoveSlide (wxCommandEvent &evt)

void OnSlideProperties (wxCommandEvent &evt)

void OnInsertInteraction (wxCommandEvent &evt)

As::FlashInterface::Ptr GetFlashInterface ()

void OnFlashInterfaceReady ()

Friends

class EditorView

Detailed Description

The main wxFrame subclass for the application.

Constructor & Destructor Documentation

ilog::TopFrame::TopFrame ()

ilog::TopFrame::TopFrame (wxDocManager * doc_mgr)

ilog::TopFrame::~TopFrame ()

Member Function Documentation

As::FlashInterface::Ptr ilog::TopFrame::GetFlashInterface () [inline]

void ilog::TopFrame::OnAbout (wxCommandEvent & evt)

void ilog::TopFrame::OnAddSlide (wxCommandEvent & evt)

void ilog::TopFrame::OnExit (wxCommandEvent & evt)

void ilog::TopFrame::OnFlashInterfaceReady ()

Callback for FlashInterface opens a new document when the flash players are initialized at

startup.

212

void ilog::TopFrame::OnInsertInteraction (wxCommandEvent & evt)

void ilog::TopFrame::OnPublishToFlash (wxCommandEvent & evt)

void ilog::TopFrame::OnRemoveSlide (wxCommandEvent & evt)

void ilog::TopFrame::OnSlideProperties (wxCommandEvent & evt)

void ilog::TopFrame::OnTerminate (wxCloseEvent & evt)

Handles application close event.

Simulates a user 'Exit' command to ensure that all proper cleanup occurs.

Friends And Related Function Documentation

friend class EditorView [friend]

ilog::TransformComponentCommand Class Reference Represents a transform operation (i.e.

#include <component_command.h>

Public Member Functions

TransformComponentCommand (const wxString &name, As::FlashInterface::Ptr flash_interface,

As::ComponentHandle h_comp, As::Object old_bounds, As::Object new_bounds, bool

from_flash=false)

~TransformComponentCommand ()

bool Do ()

bool Undo ()

Detailed Description

Represents a transform operation (i.e.

resize, move) on a Flash component.

Constructor & Destructor Documentation

ilog::TransformComponentCommand::TransformComponentCommand (const wxString & name, As::FlashInterface::Ptr flash_interface, As::ComponentHandle h_comp,

As::Object old_bounds, As::Object new_bounds, bool from_flash = false)

Constructor.

Specify 'true' for the 'from_flash' parameter if the action has already been performed on the

Flash side and the command should simply be inserted into the undo stack without being

executed.

213

ilog::TransformComponentCommand::~TransformComponentCommand ()

Member Function Documentation

bool ilog::TransformComponentCommand::Do ()

bool ilog::TransformComponentCommand::Undo ()

ilog::As::TypeError Class Reference

#include <exceptions.h>

Inheritance diagram for ilog::As::TypeError:

Public Member Functions

TypeError (const wxString &what)

Constructor & Destructor Documentation

ilog::As::TypeError::TypeError (const wxString & what) [inline]

ilog::As::URIError Class Reference #include <exceptions.h>

Inheritance diagram for ilog::As::URIError:

Public Member Functions

URIError (const wxString &what)

214

Constructor & Destructor Documentation

ilog::As::URIError::URIError (const wxString & what) [inline]

ilog::qti::Variable Class Reference #include <expression.h>

Inheritance diagram for ilog::qti::Variable:

Public Types

typedef shared_ptr< Variable > Ptr

Public Member Functions

wxString GetName () const

Identifier GetIdentifier () const

Identifier GetWeightIdentifier () const

void SetWeightIdentifier (Identifier weight_id)

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Static Public Member Functions

static Ptr Create ()

static Ptr Create (const wxXmlNode *root_node)

static Ptr Create (Identifier id, Identifier weight_id=NULL_IDENTIFIER)

Protected Member Functions

Variable ()

Variable (Identifier id, Identifier weight_id=NULL_IDENTIFIER)

Variable (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<Variable> ilog::qti::Variable::Ptr

215

Reimplemented from ilog::qti::Expression (p.100).

Constructor & Destructor Documentation

ilog::qti::Variable::Variable () [protected]

ilog::qti::Variable::Variable (Identifier id, Identifier weight_id = NULL_IDENTIFIER) [explicit, protected]

ilog::qti::Variable::Variable (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

static Ptr ilog::qti::Variable::Create (Identifier id, Identifier weight_id =

NULL_IDENTIFIER) [static]

static Ptr ilog::qti::Variable::Create (const wxXmlNode * root_node) [static]

static Ptr ilog::qti::Variable::Create () [static]

Identifier ilog::qti::Variable::GetIdentifier () const [inline]

wxString ilog::qti::Variable::GetName () const [inline, virtual]

This pure virtual method allows abstract base classes to know the name of the XML element

that represents their concrete descendants.

It should only be implemented in classes that correspond to a concrete (non-abstract) QTI

element.

Implements ilog::qti::Element (p.95).

Identifier ilog::qti::Variable::GetWeightIdentifier () const [inline]

void ilog::qti::Variable::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

wxXmlNode* ilog::qti::Variable::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

void ilog::qti::Variable::SetWeightIdentifier (Identifier weight_id) [inline]

ilog::qti::VariableDeclaration Class Reference #include <content_model.h>

216

Inheritance diagram for ilog::qti::VariableDeclaration:

Public Types

typedef shared_ptr< VariableDeclaration > Ptr

Public Member Functions

Identifier GetIdentifier () const

void SetIdentifier (const wxString &identifier)

Cardinality GetCardinality () const

BaseType GetBaseType () const

bool IsValid () const

wxXmlNode * Serialize () const

void InitializeFromXml (const wxXmlNode *root_node)

Protected Member Functions

VariableDeclaration ()

VariableDeclaration (Cardinality card, BaseType base)

VariableDeclaration (const wxXmlNode *root_node)

Member Typedef Documentation

typedef shared_ptr<VariableDeclaration> ilog::qti::VariableDeclaration::Ptr

Reimplemented from ilog::qti::Element (p.94).

Reimplemented in ilog::qti::ResponseDeclaration (p.183).

217

Constructor & Destructor Documentation

ilog::qti::VariableDeclaration::VariableDeclaration () [protected]

ilog::qti::VariableDeclaration::VariableDeclaration (Cardinality card, BaseType base) [protected]

ilog::qti::VariableDeclaration::VariableDeclaration (const wxXmlNode * root_node) [explicit, protected]

Member Function Documentation

BaseType ilog::qti::VariableDeclaration::GetBaseType () const [inline]

Cardinality ilog::qti::VariableDeclaration::GetCardinality () const [inline]

Identifier ilog::qti::VariableDeclaration::GetIdentifier () const [inline]

void ilog::qti::VariableDeclaration::InitializeFromXml (const wxXmlNode * root_node) [virtual]

Reimplemented from ilog::qti::ISerializable (p.135).

Reimplemented in ilog::qti::ResponseDeclaration (p.184).

bool ilog::qti::VariableDeclaration::IsValid () const [inline, virtual]

This method should return true if and only if all required attributes of the element are fully

specified and all specified attributes are valid (i.e.

identifiers are unique, strings of type 'String256' are less than 256 characters long, etc.).

Reimplemented from ilog::qti::Element (p.96).

wxXmlNode* ilog::qti::VariableDeclaration::Serialize () const [virtual]

Reimplemented from ilog::qti::Element (p.96).

Reimplemented in ilog::qti::ResponseDeclaration (p.184).

void ilog::qti::VariableDeclaration::SetIdentifier (const wxString & identifier) [inline]

ilog::WxException Class Reference Generic exception class representing an error in the wxWidgets library.

#include <wx_exception.h>

Inherits std::exception.Public Member Functions

WxException (const wxString &what) throw ()

const char * what () const throw ()

218

virtual ~WxException () throw ()

Detailed Description

Generic exception class representing an error in the wxWidgets library.

Constructor & Destructor Documentation

ilog::WxException::WxException (const wxString & what) throw () [inline]

virtual ilog::WxException::~WxException () throw () [inline, virtual]

Member Function Documentation

const char* ilog::WxException::what () const throw () [inline]

Hostetler 219

219

ilog::wxStringComparator Struct Reference Allows wxString to be used as a key in an STL map.

#include <string_util.h>

Public Member Functions

bool operator() (const wxString &a, const wxString &b) const

Detailed Description

Allows wxString to be used as a key in an STL map.

Member Function Documentation

bool ilog::wxStringComparator::operator() (const wxString & a, const wxString & b) const [inline]

Hostetler 220

220

Hostetler 221

221

Appendix C – Flash Editor Components Documentation

Documentation for the Flash components of the iLOG Flash Editor is provided on the CD

distributed with this document in the form of a set of HTML documents. These documents can

be found in the directory iLOG_Flash_Editor/doc/flash/html.

Hostetler 222

222

Hostetler 223

223

Appendix D – Flash Runtime Library Documentation

Documentation for the Flash Runtime Library is provided on the CD distributed with this

document in the form of a set of HTML documents. These documents can be found in the

directory iLOG_Flash_Editor/doc/flash/html.

Hostetler 224

224

Hostetler 225

225

Appendix E – IFE Usability Survey

CSCE235 Homework 8: Feedback on Software

Complete the following overall evaluation for IJEDI the Flash Editor software used in HW#8.

Interface Low Neutral High Not Applicable

Easily accessible 1 2 3 4 5 NA

Friendliness 1 2 3 4 5 NA

Logical design 1 2 3 4 5 NA

Level of content 1 2 3 4 5 NA

Layout 1 2 3 4 5 NA

Audience appeal 1 2 3 4 5 NA

Other 1 2 3 4 5 NA

Other questions and suggestions about interface?

Functionality Low Neutral High Not Applicable

Easy of use 1 2 3 4 5 NA

Usefulness 1 2 3 4 5 NA

Effectiveness 1 2 3 4 5 NA

Speed 1 2 3 4 5 NA

Correctness 1 2 3 4 5 NA

Completeness 1 2 3 4 5 NA

Suitability 1 2 3 4 5 NA

Technical elements 1 2 3 4 5 NA

Other 1 2 3 4 5 NA

Other questions and suggestions about functionality?

Help Menu Low Neutral High Not Applicable

Answers your questions 1 2 3 4 5 NA

Provides information you need 1 2 3 4 5 NA

Instructive and helpful 1 2 3 4 5 NA

Easy to follow 1 2 3 4 5 NA

Other 1 2 3 4 5 NA

Other questions and suggestions about help menu?