Page 1
Nokia 9000/9110 Development Environment (N9kDE) User Guide...
Page 2
NOKIA MOBILE PHONES. Nokia is a registered trademark of Nokia Corporation. The models 9000 and 9110, the 9000il Communicator, and other Nokia products referenced herein are either trademarks or registered trademarks of Nokia Corporation and/or its affiliates.
Table of Contents PRODUCT OVERVIEW ........................5 ABOUT THE NOKIA 9000/9110 DEVELOPMENT ENVIRONMENT......... 6 PARTS OF THE NOKIA 9000/9110 DEVELOPMENT ENVIRONMENT ........7 .................. 7 NTERACTIVE DEVELOPMENT NVIRONMENT ............................8 DITOR ............................8 MULATOR ........................9 OMPILER AND INKER CREATING A PROJECT........................11 ..........................
Page 4
ONVERSION 14.3 SDK A ..............41 UTOMATED ROCEDURE FOR NSERTING CONS 14.4 ........................41 TATUS ABEL SOURCE CODE EDITOR......................42 15.1 9000/9110 D ......42 OKIA EVELOPMENT NVIRONMENT DITOR EATURE 15.2 ......................44 ECORD ACRO IALOG 15.3 ........................44 ACRO IALOG 15.4...
• Provides rapid access to GEOS documentation and help. The Nokia 9000/9110 Development Environment is designed to operate as an extension of the existing GEOS SDK. This extension is provided through the use of executable files developed by Geoworks. The Nokia 9000/9110 Development Environment makes use of GEOS SDK.
The Nokia 9000/9110 Development Environment is based on the notion of a project. A project is the group of GEOS files and support information that are required to compile and execute a GEOS application. A project in the Nokia 9000/9110 Development Environment includes one PRJ file, one GOC file, one GP file, one GOH file, and a number of NGX files.
Active-X Tool(s) (add-ins called “Components”) • Help Files Interactive development Environment The Nokia 9000/9110 Development Environment is a multi-featured workspace that includes a rich editor capability, project creation, compilation, and emulation, form and procedure creation and deletion, and online help support.
The Nokia 9000/9110 Development Environment Source Code Editor is used for viewing and editing project files. Line Tool Emulator The Nokia 9000 Geos emulator may be launched from the Nokia 9000/9110 Development Environment. It may be used in conjunction with Swat to provide debugging support.
Compiler and Linker The Nokia 9000/9110 Development Environment provides a good integration to the GEOS compiler and linker. During the development cycle, the Build menu supports step-by-step compilation as well as a shortcut <F5> to make the makefiles, compile, and launch the emulator.
Creating a new project in the SDK gives the user a default application that includes a main form with a close button. The default application is code-generated from the Nokia 9000/9110 Development Environment baseline files. The five baseline (template) files that are core to the...
Editing code between the code blocks may render the file or project useless in the SDK. 4.1.1 PRJ File The “prj” file is used by the Nokia 9000/9110 Development Environment to maintain the state of the files, build settings, last modified times, available procedures, and available forms. When the project is loaded, the project file time stamps are compared to the last modified time.
[PROCEDURES] 4.1.2 GOH File The Nokia 9000/9110 Development Environment baseline GOH file is the Goc header file. This file provides definitions used by the .goc files (in the same relation as between standard C source and header files). Unlike standard C header files, these are included using the @include Goc keyword.
The GOC file contains both standard C code and GEOS constructs (such as objects and messages). This file contains the methods that are generated after a procedure is added. It is an empty method that exists for the Nokia developer to provide his custom implementation. /////////////////////////////////////////////////////////////////////////...
Page 15
$INCLUDE PROJECT GOH$ //}}INCLUDE-GOC ///////////////////////////////////////////////////////////////////////// Constants ///////////////////////////////////////////////////////////////////////// Color drawColor = C_BLACK; #define DOC_WIDTH FOAM_DEFAULT_COMPONENT_WIDTH #define DOC_HEIGHT char chartName[] = "Nokia 9000/9110 Development Environment SDK"; ///////////////////////////////////////////////////////////////////////// Data Types ///////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////// Class Definitions ///////////////////////////////////////////////////////////////////////// //Look in GOH File ///////////////////////////////////////////////////////////////////////// Class Declarations /////////////////////////////////////////////////////////////////////////...
Page 16
/* {{END ICON LABEL BLOCK}} -- DO NOT ERASE */ @end AppResource; @start Interface; @object GenPrimaryClass $SHORT NAME$Primary = { GI_comp = @$SHORT NAME$Box, /* {{$SHORT NAME$ INTERFACE RESOURCE BLOCK}} -- DO NOT ERASE -- */ /* {{END $SHORT NAME$ INTERFACE RESOURCE BLOCK}} -- DO NOT ERASE -- */ @$SHORT NAME$CloseTrigger;...
Page 17
/* {{RESOURCE BLOCK}} -- DO NOT ERASE -- */ /* {{END RESOURCE BLOCK}} -- DO NOT ERASE -- */ /******************************************************************** Code for BaselineProcessClass *******************************************************************/ /******************************************************************** MSG_GEN_PROCESS_OPEN_APPLICATION ******************************************************************** * SYNOPSIS: Here is where we can intercept the starting of our GEOS application. It is a handy place to initialize any global variables and set up various user interface components.
/* {{BEGIN VIS DRAW CONTENT}} */ /* {{END VIS DRAW CONTENT}} */ } /* End of MSG_VIS_DRAW */ void $SHORT NAME$ViewDraw( GStateHandle gstate ) /* {{$SHORT NAME$ DRAW BLOCK}} -- DO NOT ERASE -- */ /* {{END $SHORT NAME$ DRAW BLOCK}} -- DO NOT ERASE -- */ } /* End of $SHORT NAME$ViewDraw */ /* {{USER-DEFINED METHOD BLOCK}} -- DO NOT ERASE -- */ 4.1.4 Baseline GP File...
Page 19
# Specify class name for application thread. Messages sent to the application # thread (aka "process" when specified as the output of a UI object) will be # handled by the process class. class $PROCESS CLASS NAME$ # Specify application object. This is the object that serves as the top-level # UI object in the application.
Opening a project To open an existing project, go to the File menu and choose Open… Navigate to your project directory from the File selection dialog, and choose your PRJ file.
Closing a Project Closing a Nokia 9000/9110 Development Environment project is accomplished by selecting close from the file menu or clicking the X on project window. This is used to store the current state of the project and free up any resources that are being used by the project. If any of the project files (GOH, GOC, GP) are open and have been modified, the user will be given the option to save the changes made to the file(s).
Project Save As The Nokia 9000/9110 Development Environment allows the user to copy the project file and code files to a new base name. The Project Save As feature actually makes changes to the new (copied) GOC, GOH, and GP files to reflect the new project name.
Find Fast Drop Box The Find Fast drop box is used to quickly locate tokens, monikers, and other keywords in your project GOC file. Select the dropbox from the toolbar.
Options Dialog Project options may be modified using the Advanced Options dialog, found in the View menu. You can change the toggle the build type between Error Correcting (EC) and non-Error correcting (NC). You can choose the target folder: • Extra Apps •...
Graphical File Information (.NGX Files) You can add Graphical File Information and examine statistics on the graphics file through the View->Graphical File Information menu option. This option only works with .NGX files.
10 Toolbox (add-in manager) You can add tools to the SDK by selecting “Tools Manager” from the Tools menu. The Tools Manager will pop-up a dialog showing you what tools are available for you to add to your project. If you will be using the tool repeatedly, you may find it useful to add the tool to the Tools menu.
Page 27
The following screen shows the Tools Manager with the Flashing Note Toolbox listed. The Flashing Note toolbox is a tool that is provided with the Nokia 9000/9110 Development Environment. To add a tool, select the tool and press the Start Tool Now button. The tool will launch and guide you through its use.
The SDK will open the help file in a Window for you to read. Click on the hyperlinks in the Help Window to navigate to other Help topics. The following figure illustrates a Geos Help file displayed in the Nokia 9000/9110 Development Environment.
12 Building the Project Compiling and Linking a project in the SDK involves several steps: • Create project makefile • Compile the source code • Copy the executable to the emulator directory • Launch the emulator All of the compile and link options appear on the Build menu of the SDK. 12.1 Makefile The project makefile must be created for the Borland C++ compiler to be able to successfully compile and link.
12.4 Launch Emulator After the GEO file has been copied to the emulator director, you can start the emulator to test the code is behaving properly. Select “Launch Emulator” from the Build menu. Within the Nokia 9000 Emulator Meaning <CTRL><F12>...
12.6 Swat The Nokia 9000/9110 Development Environment can interact with the Swat debugger to provide low-level program debugging support. To use the Swat debugger, build your project and launch Swat with the Wait option. This option is found on the Build menu.
Page 33
Next, start swat from the SDK (<CTRL>W) or choosing Swat from the build menu. Running Swat causes a command window to be launched.
Page 34
Begin execution with the “c” command. Quit Swat with the “quit” command. Get help on Swat commands with the “help” command. Beginning execution causes the emulator to appear.
13 Forms and Procedures 13.1 Main Form Every SDK project starts with a main form and a close button. You can add forms and procedures to the main form several layers deep. The tree view displays the current form/procedure layout of the project.
13.3 Graphic Forms If the user selects graphic form, using the checkbox in the Add New Form dialog, a new pop-up menu item will be added to the tree-view window allowing the user to edit graphics. The form graphics avaialble include rectangles, lines, round rectangles, ellipses, and polylines. 13.4 Adding a Procedure Adding a procedure to an existing project is accomplished by selecting an existing form in the tree-view where the new procedure is to be added, right mouse clicking on the selected form,...
13.5 Deleting Forms and Procedures The user will be able to delete forms and procedures in the main frame that are no longer needed. This will be performed by selecting a node in the main frame window and pressing the “Del” key or by selecting “delete” from the edit menu. The user will then be prompted with a message box (YES, NO) asking for confirmation.
13.7 Line and Fill Color You can change the line color or fill color (gray shade) of the objects in the graphics form. Choose Graphics->Line Color or Graphics->Fill Color to change. The following color picker dialog is presented. The four colors displayed are those which can be represented on the N9000 handset. By changing the fill color, the graphics editor changes the display.
Page 39
You can as well double-click on the graphic element and a dialog will pop-up, allowing you to change both the line and fill properties of the object :...
14 Inserting Icons There are two types of icons that are available in the Nokia 9000/9110 Development Environment, the status pane icon and the file list icon. The Status pane icon appears on the left- hand side of the screen and the status pane icon appears in the file list window.
This saves the GEOS code in a file called test.goh.. The 2 and G options need to be inserted to insure that the image is created in the correct format for the Nokia 9000 Communicator. The width and height are specified using the –w and –h options.
15 Source code editor The Nokia 9000/9110 Development Environment Source Code Editor is used for viewing and editing project files. The files that are supported include GOC, GOH, and GP files. The GOC files contain both standard C code and GEOS constructs (such as objects and messages).
Page 43
Drag and Drop Text Manipulation. Highlighted text can be dragged and dropped between any window supporting Drag and Drop. Text may be copied or moved. Multiple Split Views. Users can create up to four separate views of the same edit buffer. Each view can be scrolled independently.
15.2 Record Macro Dialog The record macro dialog appears when the user selects CTRL-SHIFT-R. At this point any actions that the user makes within the source code editor is buffered. When the user selects the “stop” button in the Record Macro dialog, the save macro dialog will appear. 15.2.1.1.1.1.1.1.1 15.2.1.1.1.1.1.1.2 15.2.1.1.1.1.1.1.3...
15.5 Find Dialog The Find dialog box appears when the user presses CTRL-F or right mouse clicks within the editor window. 15.6 Find & Replace Dialog The Find & Replace dialog box appears when the user presses CTRL-R or right mouse clicks within the editor window.
Page 46
The Language tab is used to select the language that is used within the editor window. For the Nokia 9000/9110 Development Environment the default Language is GEOS. Each language contains specific keywords that are preloaded when the editor window is displayed.
Page 47
The Misc tab is used for controlling general characteristics of the editor window.
15.8 Using the Mouse The Nokia 9000/9110 Development Environment Source Code Editor supports the following mouse actions: Mouse Action: Result: L-Button click over text Changes the caret position R-Button click Displays the right click menu L-Button down over selection, and drag...
Page 49
DocumentStartExtend Control + Shift + Home Find Alt + F3 Find Control + F FindNext FindNextWord Control + F3 FindPrev Shift + F3 FindPrevWord Control + Shift + F3 FindReplace Control + Alt + F3 GoToLine Control + G GoToMatchBrace Control + ] Home Home...
The default right-click menu: 15.13 Nokia 9000/9110 Development Environment Output Window The Nokia 9000/9110 Development Environment output window is used as a build status window when creating the makefile, compiling the source code files, or launching the emulator. Problems that occur during the build and compile process are indicated with an error or warning message as shown in the figure below.
15.14 Docking The output window is loaded in a default docking state attached to the bottom of the window. IF the window is docked, double click the top of the output window to make it a floating window. IF the window is floating, double click the blue bar at the top of the output window to dock it.
Once a project has been created, implemented, and tested, the project is ready to be packaged and made exportable to the Nokia 9000i Communicator. The Nokia Package Utility is activated by selecting Package from the Nokia 9000/9110 Development Environment build directory.
Page 53
The package utility attempts to use the registry to determine the last project that was used by the SDK and automatically adds the GEO file, if any, to the File to Package list. If the file does not appear, add the .GEO file with the Add button.
Page 54
The user will then enter package information which includes: package description, package identifier, and the location for the new package. The package directory, with all of the contents, will then be archived using tar. The package directory is best to be a separate, empty folder. Choose the browse option for the destination directory and add/select a new folder.
Page 55
After clicking “Create” you should get a “Package Created Successfully” message.
Output window. You can double click the error description and the Nokia 9000/9110 Development Environment will position the editor at that line number in the GOC file. 17.3 What happens if my program has a run-time error? If your program has a logic error or run-time error, you may want to use the SWAT debugger to help investigate the problem.
Yes. Log off and log back in as Administrator if necessary, prior to running the SDK. 17.9 Will my projects be deleted if I un-install? No, your project files will not be deleted when the Nokia 9000/9110 Development Environment is uninstalled...
17.13 Where can I get GEOS Programming help? The GEOS programming help – Techdocs – is available through the Nokia 9000/9110 Development Environment. Simply go to Help on the menu bar and search for the topic you require. 17.14 How do I download my project to the Handset? Projects are saved to the N9000 Handset by packaging the program (.GEO file) and transferring...
Toolbar Quick Reference Toolbar Icon Description Create new project Open project or file Save project or file Cut (editor command) Copy (editor command) Paste (editor command) Print file About the SDK Go Back one page in help Go Forward one page in help Refresh help window Go to the help (Techdocs) home page Search for a help topic in the Techdocs...
19 Glossary Active-X A set of rules about how applications should share information Application Programmers Interface Component Object Model Error-correction information included, applies to GEOS 3.0 emulator/compiler Main source code file for the GEOS language File extension associated with GEOS header files Project attribute source code file in the GEOS language Graphical User Interface HTML...