int main() { char bigAssBuffer[BIGASSBUFFERSIZE]; char* hello = "HTTP GET test"; Extent screenSize, textSize; screenSize = maGetScrSize(); //Draw centered text println(""); textSize = maDrawText(0, 0, hello); maSetColor(0); maFillRect(0, 0, EXTENT_X(textSize), EXTENT_Y(textSize)); //erase test text maDrawText((EXTENT_X(screenSize) - EXTENT_X(textSize)) / 2, 0, hello); maUpdateScreen(); println("Connecting..."); int res = maHttpGet("link.astando.se" "/guido/LvRouting.asmx/GenerateRouteGuido?fromX=100502&fromY=77476&toX=100591&toY=77368", //"wap.mopix.se/test/test.comb", bigAssBuffer, BIGASSBUFFERSIZE); printiln("Got %i bytes", res); println(bigAssBuffer); println("PAK to quit"); PAKAndRelease(); maExit(0); }
int renderCurrent() { int h = 1; MAExtent e = maGetScrSize(); Dimensions screen; screen.width = EXTENT_X(e); screen.height = EXTENT_Y(e); maSetClipRect(0, 0, screen.width, screen.height); maSetColor(BLACK); maFillRect(0, 0, screen.width, screen.height); maSetColor(0xffffff); sprintf(buff, "Write the following string"); mExtent = maGetTextSize(buff); maDrawText(1,h,buff); h+= EXTENT_Y(mExtent); sprintf(buff, "%s", matchString.c_str()); mExtent = maGetTextSize(buff); maDrawText(1,h,buff); h+=EXTENT_Y(mExtent); sprintf(buff, "end"); mExtent = maGetTextSize(buff); maDrawText(screen.width - EXTENT_X(mExtent),screen.height-EXTENT_Y(mExtent),buff); return h; }
void TestMoblet::testLoadWithName() { mShowing = 2; maSetColor(0x000000); MAExtent size = maGetScrSize(); maFillRect(0,0,EXTENT_X(size),EXTENT_Y(size) ); maSetColor(0xCD5555); int top = 0; maDrawText(10,top,"--------- Test maFontLoadWithName(test each name from list) --------- "); top += 20; for (int i=0; i<fontNames.size(); i++) { top += 20; int handle = maFontLoadWithName(fontNames[i].c_str(), 15); if ( handle == RES_FONT_NAME_NONEXISTENT ) { message = "Font nonexistent: " + fontNames[i]; maDrawText(10,top, message.c_str()); } else { maFontSetCurrent(handle); message = "Font " + fontNames[i] + " has handle = " + MAUtil::integerToString(handle); maDrawText(10, top, message.c_str()); } } maDrawText(10, top+40, "Tap screen to test maFontLoadDefault for some combinations"); maUpdateScreen(); }
/** * This function will be called whenever the moblet has nothing else to do, * drawing rectangles with the touchIds where the fingers touches the * screen. The amount of touches possible on a device is platform dependent. * * In the MoRE emulator you can simulate multitouch by right-clicking the screen. * This will simulate two touches, mirrored around the center of the screen. * Each of these two touches will be marked with a blue circle. */ void idle() { // Clear the screen by drawing a black rectangle covering the visible area. maSetColor(0); int screenSize = maGetScrSize(); maFillRect(0, 0, EXTENT_X(screenSize), EXTENT_Y(screenSize)); // Loop through all the current touches and draw for each a rectangle // and the touch id. for(MAUtil::Map<int, MAPoint2d>::Iterator iterator = mTouches.begin(); iterator != mTouches.end(); iterator++) { MAPoint2d point = iterator->second; int touchId = iterator->first; char touchStr[16]; sprintf(touchStr, "%d", touchId); // Draw a red rectangle, centred around the touch position maSetColor(0xff0000); maFillRect(point.x - (MARKER_SIZE/2), point.y - (MARKER_SIZE/2), MARKER_SIZE, MARKER_SIZE); // Draw the touch id to the top-left of each red rectangle. maSetColor(0xffffff); maDrawText(point.x + (MARKER_SIZE/2), point.y - (MARKER_SIZE/2), touchStr); } maUpdateScreen(); }
/* * @brief Draw the sensor status. * @param index Current sensor index. * @param x Coordinate x where to draw the values. * @param y Coordinate y where to draw the values. */ void drawSensorStatus(int index, int x, int y) { char buffer[BUFFER_SIZE]; sprintf(buffer, "%s: %s", gSensorName[index], getErrorText(gSensorError[index])); maDrawText(x, y, buffer); }
void keyReleaseEvent(int keyCode) { if(keyCode == MAK_CLEAR) { if(currentLength!=0)currentLength--; currentString[currentLength] = 0; int h = renderCurrent(); sprintf(buff, "%s", currentString); mExtent = maGetTextSize(buff); maDrawText(1,h,buff); h+=EXTENT_Y(mExtent); renderCursor(h, EXTENT_X(mExtent)); } if(keyCode == MAK_SOFTRIGHT) { const char* ms = matchString.c_str(); if(strcmp(ms, currentString) == 0) assert(name, true); else assert(name, false); MAUtil::Environment::getEnvironment().removeKeyListener(this); //printf("charInput test finished\n"); suite->runNextCase(); } }
void TestMoblet::checkFont(int left, int top,MAHandle font) { if ( font == -1) { maDrawText(200,top,"NO FONT!!"); } }
void KeyBaseCase::showErrorScreen(int errorCode) { MAExtent e = maGetScrSize(); Dimensions screen; screen.width = EXTENT_X(e); screen.height = EXTENT_Y(e); maSetClipRect(0, 0, screen.width, screen.height); maSetColor(BLACK); maFillRect(0, 0, screen.width, screen.height); int oldCol = maSetColor(0xff0000); const char* testName = name.c_str(); maDrawText(4, 0, testName); int testNameHeight = EXTENT_Y(maGetTextSize(testName)); if(FUNC_OUT_OF_MEMORY_ALLOC == errorCode) maDrawText(4, testNameHeight+2, "Out of Memory"); else if(FUNC_OUT_OF_MEMORY_RESOURCE == errorCode) maDrawText(4, testNameHeight+2, "Couldn't create resource"); else if(FUNC_SYSCALL_ERROR == errorCode) maDrawText(4, testNameHeight+2, "A syscall wasn't called correctly"); else if(FUNC_SYSCALL_NOT_SUPPORTED == errorCode) maDrawText(4, testNameHeight+2, "Unsupported feature"); else maDrawText(4, testNameHeight+2, "Unknown error!"); maDrawText(4, testNameHeight*2+4, "press key or screen to continue"); maUpdateScreen(); maSetColor(oldCol); }
void characterChanged(char c) { int h = renderCurrent(); currentString[currentLength] = c; currentString[currentLength+1] = 0; sprintf(buff, "%s", currentString); mExtent = maGetTextSize(buff); maDrawText(1,h,buff); h+=EXTENT_Y(mExtent); renderCursor(h, EXTENT_X(mExtent)-8); }
void TestMoblet::testFont (int family, int style, int size, int top) { MAHandle font = maFontLoadDefault(family,style,size); if ( font == RES_FONT_INVALID_SIZE) { maSetColor(0xCD3333); maDrawText(200,top,"Invalid size"); maSetColor(0xC1FFC1); } else if( font == RES_FONT_NO_TYPE_STYLE_COMBINATION) { maSetColor(0xCD3333); maDrawText(200,top,"No type style combination"); maSetColor(0xC1FFC1); } else { maFontSetCurrent(font); MAUtil::String message = "Ok, handle: " + MAUtil::integerToString(font); maDrawText(200, top, message.c_str()); } }
int MAMain() { maSetColor(0xFFFFFF); maDrawText(0,0, "Hello World!"); maUpdateScreen(); //Freeze while(1) { maWait(0); EVENT event; if(maGetEvent(&event)) { if(event.type == EVENT_TYPE_CLOSE) break; if(event.type == EVENT_TYPE_KEY_PRESSED) { if(event.key == MAK_0) break; } } } return 0; }
/** * Method that draws display data to the screen. */ void drawScreen() { MAExtent screenSize = maGetScrSize(); int width = EXTENT_X(screenSize); int height = EXTENT_Y(screenSize); int x = 20; int y = height / 2; char orientationText[128]; if (width > height) // Landscape { // Set the background color. maSetColor(0x000099); // Set text. sprintf(orientationText, "Landscape %d %d", width, height); } else // Portrait { // Set the background color. maSetColor(0x009900); // Set text. sprintf(orientationText, "Portrait %d %d", width, height); } // Fill background maFillRect(0, 0, width, height); // Use white to display the text. maSetColor(0xFFFFFF); // Draw the text. maDrawText(x, y, orientationText); // Redraw the screen. maUpdateScreen(); }
/* * ctor */ TestMoblet::TestMoblet() { mShowing = 1; maSetColor(0xC1FFC1); int top = 10; maDrawText(10,top, "--------- Display number of fonts with current font ---------"); nrFonts = maFontGetCount(); MAUtil::String tempNrFonts; char buf1[10]; char buf2[256]; itoa(nrFonts,buf1, 10); tempNrFonts += buf1; tempNrFonts += " fonts."; top += 20; maDrawText(10,top,tempNrFonts.c_str()); maSetColor(0x00FFFF); top+=40; maDrawText(10,top,"--------- Display list of fonts with default font size --------- "); MAUtil::String tempFont; int getNameError; for ( int i=0; i<nrFonts; i++) { char buf[256]; getNameError = maFontGetName(i, buf, 256); if ( getNameError >= 0 ) { top += 20; fontNames.add(buf); maDrawText(10,top, buf); } else { top += 20; message = "Font on index:" + MAUtil::integerToString(i) + "returned error:" + MAUtil::integerToString(getNameError); maDrawText(10, top, message.c_str()); } } maDrawText(10, top+40, "Tap screen to test maLoadWithName for each font"); maUpdateScreen(); }
/* * @brief Draw the sensor values. * @param index Current sensor index. * @param x Coordinate x where to draw the values. * @param y Coordinate y where to draw the values. */ void drawSensorValue(int index, int x, int y) { float* values = gSensorValue[index]; char buffer[BUFFER_SIZE]; switch (index) { case SENSOR_TYPE_ACCELEROMETER: case SENSOR_TYPE_MAGNETIC_FIELD: case SENSOR_TYPE_GYROSCOPE: sprintf(buffer, "Values: %f; %f; %f", values[0], values[1], values[2]); break; case SENSOR_TYPE_ORIENTATION: sprintf(buffer, "Value: %s", getOrientationText((int)values[0])); break; case SENSOR_TYPE_PROXIMITY: if (values[0] == SENSOR_PROXIMITY_VALUE_FAR) sprintf(buffer, "Value: FAR"); else sprintf(buffer, "Value: NEAR"); break; } maDrawText(x, y, buffer); }
int RenderMain ( void ) { int tmrLast = 0; int currFps = 0, lastFps = 0; int frameIndex = 0; float frameInterp = 0; float rotRadY = 0.0f, rotRadX = 0.0f; char textBuffer[128]; bool keyTable[4] = { false }; bool focus = true; Matrix4fi transMatrix( false ); MAExtent size = maGetScrSize( ); MDLFixed model( RES_MODEL_OGRE ); TransformPipe pipe( EXTENT_X( size ), EXTENT_Y( size ) ); // Center model model.centerModel( ); tmrLast = maGetMilliSecondCount( ); // // Rendering loop // while ( true ) { // // Handle input // MAEvent e; while ( maGetEvent( &e ) ) { if ( e.type == EVENT_TYPE_CLOSE || e.type == EVENT_TYPE_KEY_PRESSED || e.type == EVENT_TYPE_POINTER_PRESSED ) maExit(0); else if(e.type == EVENT_TYPE_FOCUS_LOST) focus = false; else if(e.type == EVENT_TYPE_FOCUS_GAINED) focus = true; else if ( e.type == EVENT_TYPE_KEY_PRESSED ) { if ( e.key == MAK_LEFT ) keyTable[MAK_LEFT-MAK_UP] = true; else if ( e.key == MAK_RIGHT ) keyTable[MAK_RIGHT-MAK_UP] = true; else if ( e.key == MAK_UP ) keyTable[MAK_UP-MAK_UP] = true; else if ( e.key == MAK_DOWN ) keyTable[MAK_DOWN-MAK_UP] = true; } else if ( e.type == EVENT_TYPE_KEY_RELEASED ) { if ( e.key == MAK_LEFT ) keyTable[MAK_LEFT-MAK_UP] = false; else if ( e.key == MAK_RIGHT ) keyTable[MAK_RIGHT-MAK_UP] = false; else if ( e.key == MAK_UP ) keyTable[MAK_UP-MAK_UP] = false; else if ( e.key == MAK_DOWN ) keyTable[MAK_DOWN-MAK_UP] = false; } } if(focus) { if ( keyTable[MAK_LEFT-MAK_UP] ) rotRadY -= (float)M_PI / 60; else if ( keyTable[MAK_RIGHT-MAK_UP] ) rotRadY += (float)M_PI / 60; else if ( keyTable[MAK_UP-MAK_UP] ) rotRadX -= (float)M_PI / 60; else if ( keyTable[MAK_DOWN-MAK_UP] ) rotRadX += (float)M_PI / 60; rotRadX = (rotRadX >= 2*(float)M_PI) ? rotRadX-2*(float)M_PI : rotRadX; rotRadY = (rotRadY >= 2*(float)M_PI) ? rotRadY-2*(float)M_PI : rotRadY; // // Construct transformation pipe // pipe.resetPipe( ); transMatrix.rotateX( (float)-M_PI/2 ); pipe.addTransform( transMatrix ); transMatrix.rotateY( (float)M_PI/4 ); pipe.addTransform( transMatrix ); transMatrix.rotateX( rotRadX ); pipe.addTransform( transMatrix ); transMatrix.rotateY( rotRadY ); pipe.addTransform( transMatrix ); transMatrix.translate( 0, 0, 130 ); pipe.addTransform( transMatrix ); // Clear screen maSetColor( 0 ); maFillRect( 0, 0, EXTENT_X( size ), EXTENT_Y( size ) ); // // Animate and render model // maSetColor( 0xffffff ); model.drawFrameLerp( frameIndex, FLT2FIX( frameInterp ), pipe ); frameInterp += 0.25f; if ( frameInterp >= 1.0f ) { frameIndex = (frameIndex+1) % model.getFrameCount( ); frameInterp = 0.0f; } // Draw fps to screen sprintf( textBuffer, "fps: %d", lastFps ); maDrawText( 0, 0, textBuffer ); // Update screen and keep backlight on maUpdateScreen( ); maResetBacklight( ); // FPS counter currFps++; if ( tmrLast+1000 <= maGetMilliSecondCount( ) ) { lastFps = currFps; currFps = 0; tmrLast = maGetMilliSecondCount( ); lprintfln( "fps: %d", lastFps ); } } else { // no focus maWait(0); } } }
void LoadScreen::drawText(int y, const char *string, int rgb) { maSetColor(rgb); maDrawText(PADDING*2, y, string); maUpdateScreen(); }
void runTimerEvent() { clearScreen(); maSetColor(GREEN); maDrawText(2, 2, "Is backlight reset all the time?"); maResetBacklight(); }
static void soft_drawText(int left, int top, const char* text) { maDrawText(sCurrentOffset.x + left, sCurrentOffset.y + top, text); }
void VisueelScherm::update() { //update waarden vam weerdata this->weerData->update(); //stel draw target in op onze tekening maSetDrawTarget( this->diagramTekening ); //teken een staaf diagram //legenda //teken blokje en text met zonneschijn, neerslag en temperatuur maSetColor(0xffffff); maDrawText(10, 10, "Legenda"); maDrawText(10, 25, "Zonneschijn"); maDrawText(10, 40, "Neerslag"); maDrawText(10, 55, "Temperatuur"); //zonneschijn maSetColor(0xffff00); maFillRect(100, 25, 15, 15); //neerslag maSetColor(0x0000ff); maFillRect(100, 40, 15, 15); //temperatuur maSetColor(0xff0000); maFillRect(100, 55, 15, 15); //teken 10-stap lijnen maSetColor(0xffffff); //grid-lijnen for(int i=100; i<=200; i+=10) { maLine(20, i, 200, i); } //teken de staven van zonneschijn, neerslag en minimum temperatuur // Zonneschijn maSetColor(0xffff00); maFillRect(30, 100+(100-this->weerData->zonneschijn[0]), 10, this->weerData->zonneschijn[0]); //vandaag maFillRect(45, 100+(100-this->weerData->zonneschijn[1]), 10, this->weerData->zonneschijn[1]); //morgen maFillRect(60, 100+(100-this->weerData->zonneschijn[2]), 10, this->weerData->zonneschijn[2]); //overmorgen // Neerslag maSetColor(0x0000ff); maFillRect(85, 100+(100-this->weerData->neerslag[0]), 10, this->weerData->neerslag[0]); //vandaag maFillRect(100, 100+(100-this->weerData->neerslag[1]), 10, this->weerData->neerslag[1]); //morgen maFillRect(115, 100+(100-this->weerData->neerslag[2]), 10, this->weerData->neerslag[2]); //overmorgen // Temperatuur maSetColor(0xff0000); maFillRect(140, 100+(100-this->weerData->minimumtemperatuur[0]), 10, this->weerData->minimumtemperatuur[0]); //vandaag maFillRect(155, 100+(100-this->weerData->minimumtemperatuur[1]), 10, this->weerData->minimumtemperatuur[1]); //morgen maFillRect(170, 100+(100-this->weerData->minimumtemperatuur[2]), 10, this->weerData->minimumtemperatuur[2]); //overmorgen //altijd draw target na tekenen teruggeven naar scherm! maSetDrawTarget( HANDLE_SCREEN ); //update de image met de nieuwe tekening this->diagramImage->setResource( this->diagramTekening ); }
void TestMoblet::testLoadDefault() { mShowing = 3; maSetColor(0x000000); MAExtent size = maGetScrSize(); maFillRect(0,0,EXTENT_X(size),EXTENT_Y(size) ); maSetColor(0xCD5555); int top = 0; maDrawText(10,top,"--------- Test maFontLoadDefault ---------"); top += 20; maDrawText(10,top,"Test Monospace Normal -10"); testFont(FONT_TYPE_MONOSPACE,FONT_STYLE_NORMAL,-10,top); top += 20; maDrawText(10, top, "Test Monospace Bold 15"); testFont(FONT_TYPE_MONOSPACE, FONT_STYLE_BOLD, 15, top); top += 20; maDrawText(10, top, "Test Monospace Italic 15"); testFont(FONT_TYPE_MONOSPACE, FONT_STYLE_ITALIC, 15, top); top += 20; maDrawText(10, top, "Test SansSerif Normal 15"); testFont(FONT_TYPE_SANS_SERIF, FONT_STYLE_NORMAL, 15, top); top += 20; maDrawText(10, top, "Test SansSerif Bold 15"); testFont(FONT_TYPE_SANS_SERIF, FONT_STYLE_BOLD, 15, top); top += 20; maDrawText(10, top, "Test SansSerif Italic 15"); testFont(FONT_TYPE_SANS_SERIF, FONT_STYLE_ITALIC, 15, top); top += 20; maDrawText(10, top, "Test Serif Normal 15"); testFont(FONT_TYPE_SERIF, FONT_STYLE_NORMAL, 15, top); top += 20; maDrawText(10, top, "Test Serif Bold 15"); testFont(FONT_TYPE_SERIF, FONT_STYLE_BOLD, 15, top); top += 20; maDrawText(10, top, "Test Serif Italic 15"); testFont(FONT_TYPE_SERIF, FONT_STYLE_ITALIC, 15, top); maDrawText(10, top+40, "Tap screen to EXIT"); maUpdateScreen(); }