void showPlayerColor(MI0283QT9 lcd){ while(1){ lcd.drawText(0, 15, "Color", OBJECTCOLOR, BACKGROUND, 3); red = drawSlider(lcd, 60, red, red, 0,0); green = drawSlider(lcd, 100, green , 0 , green, 0); blue = drawSlider(lcd, 140, blue, 0, 0 , blue); //draw a car lcd.drawRect(100, 180, 40, 64, RGB(red,green,blue)); lcd.drawLine(100+1,180+16,100+10, 180+26, RGB(red,green,blue)); lcd.drawLine(100+39,180+16,100+30, 180+26, RGB(red,green,blue)); lcd.drawLine(100+10,180+26,100+30, 180+26, RGB(red,green,blue)); lcd.drawLine(100+10,180+38,100+30, 180+38, RGB(red,green,blue)); lcd.drawLine(100+1,180+48,100+10, 180+38, RGB(red,green,blue)); lcd.drawLine(100+39,180+48,100+30, 180+38, RGB(red,green,blue)); lcd.drawLine(100+10,180+26,100+10, 180+38, RGB(red,green,blue)); lcd.drawLine(100+30,180+26,100+30, 180+38, RGB(red,green,blue)); lcd.drawLine(100,180+16,100+38, 180+16, RGB(red,green,blue)); lcd.drawLine(100,180+48,100+38, 180+48, RGB(red,green,blue)); if(drawButton(lcd, "Accept", 20, 270, 200, 40)){ lcd.fillScreen(BACKGROUND); break; } } }
/** * @brief WaveformTimeBar::drawTimeSliders * * Dessine tous les sliders */ void WaveformTimeBar::drawTimeSliders() { drawSlider(m_beginSlider); drawSlider(m_barSlider); drawSlider(m_endSlider); drawSlider(m_playSlider); }
void drawPause(bool ingame) { ALLEGRO_COLOR bg = al_map_rgba(255,255,255,204); float l = easeOut(pauseTempo); //textos if (ingame) { BLENDALPHA(); al_draw_filled_rectangle(px(0),py(0),px(1),py(1),al_map_rgba_f(0,0,0,.375*l)); BLENDDEFAULT(); drawBox(.5,.5,.4,.5*l,COLOR_HGHL,COLOR_SCND); al_draw_text(data.font_Regular37,COLOR_TEXT,px(.5),py(lerp(.5,.26,l)),ALLEGRO_ALIGN_CENTRE,"pause"); al_draw_text(data.font_Regular52,(selection == -1)?COLOR_HGHL:COLOR_TEXT,px(.5),py(lerp(.5,.34,l)),ALLEGRO_ALIGN_CENTRE,"continuar"); al_draw_text(data.font_Regular52,(selection == 3)?COLOR_HGHL:COLOR_TEXT,px(.5),py(lerp(.5,.66,l)),ALLEGRO_ALIGN_CENTRE,"sair ao menu"); } else { drawBitmapTinted(data.bitmap_parallax1,al_map_rgb_f(1,1,.8),.5-sinf(animTempo)*.03,.5-cosf(animTempo)*.03,game.idealProp*1.1,1.1,0,0,0); l = easeOut((scene.tempo > 0)?(scene.tempo):(1+scene.tempo)); drawBox(.5,.5,.4,.5*l,COLOR_HGHL,COLOR_SCND); al_draw_text(data.font_Regular52,COLOR_TEXT,px(.5),py(lerp(.5,.27,l)),ALLEGRO_ALIGN_CENTRE,"configurações"); al_draw_text(data.font_Regular52,(selection == 3)?COLOR_HGHL:COLOR_TEXT,px(.5),py(lerp(.5,.66,l)),ALLEGRO_ALIGN_CENTRE,"voltar"); } BLENDALPHA(); if (selection > (ingame?-1:0)) { drawSpriteSheetTinted(data.bitmap_keys,al_map_rgba_f(1,1,1,.5),.5,lerp(.5,.2,l)-fabs(sinf(animTempo*16))*.007,1./18,1./18,4,2,4,0,0,0); } if (selection < 3) { drawSpriteSheetTinted(data.bitmap_keys,al_map_rgba_f(1,1,1,.5),.5,lerp(.5,.8,l)+fabs(sinf(animTempo*16))*.007,1./18,1./18,4,2,5,0,0,0); } if (selection < 0 || selection > 1) { drawSpriteSheetTinted(data.bitmap_keys,al_map_rgba_f(1,1,1,.5),.725+fabs(sinf(animTempo*16))*.007,.5,1./18,1./18,4,2,0,0,0,0); } else { drawSpriteSheetTinted(data.bitmap_keys,al_map_rgba_f(1,1,1,.5),.275-fabs(sinf(animTempo*16))*.007,.5,1./18,1./18,4,2,6,0,0,0); drawSpriteSheetTinted(data.bitmap_keys,al_map_rgba_f(1,1,1,.5),.725+fabs(sinf(animTempo*16))*.007,.5,1./18,1./18,4,2,7,0,0,0); } BLENDDEFAULT(); //sliders drawSlider(lerp(.5,.42,l),game.volumeBgm,selection == 0,"volume bgm"); drawSlider(lerp(.5,.5,l),game.volumeSfx,selection == 1,"volume sfx"); //toggle al_draw_text(data.font_Regular52,(selection == 2)?COLOR_HGHL:COLOR_TEXT,px(.5),py(lerp(.5,.58,l)),ALLEGRO_ALIGN_CENTRE,game.showPopups?"desligar tutorial":"ligar tutorial"); //tela de confirmação if (confirmTempo > 0) { float m = easeOut(confirmTempo); BLENDALPHA(); al_draw_filled_rectangle(px(0),py(0),px(1),py(1),al_map_rgba_f(0,0,0,.375*m)); BLENDDEFAULT(); drawBox(.5,.5,.5,.2*m,COLOR_HGHL,COLOR_SCND); al_draw_text(data.font_Regular37,COLOR_TEXT,px(.5),py(lerp(.5,.415,m)),ALLEGRO_ALIGN_CENTRE,"tem certeza de que deseja sair?"); al_draw_text(data.font_Regular52,(selection2 == 0)?COLOR_HGHL:COLOR_TEXT,px(.5),py(lerp(.5,.46,m)),ALLEGRO_ALIGN_CENTRE,"sim"); al_draw_text(data.font_Regular52,(selection2 == 1)?COLOR_HGHL:COLOR_TEXT,px(.5),py(lerp(.5,.52,m)),ALLEGRO_ALIGN_CENTRE,"nem"); } }
void SliderConstraintDemo::displayCallback(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); if(m_dynamicsWorld) { m_dynamicsWorld->debugDrawWorld(); } drawSlider(spSlider1); drawSlider(spSlider2); renderme(); glFlush(); glutSwapBuffers(); } // SliderConstraintDemo::displayCallback()
void renderDemo(struct NVGcontext* vg, float mx, float my, float width, float height, float t, int blowup, struct DemoData* data) { float x,y,popy; drawEyes(vg, width - 250, 50, 150, 100, mx, my, t); drawParagraph(vg, width - 450, 50, 150, 100, mx, my); drawGraph(vg, 0, height/2, width, height/2, t); drawColorwheel(vg, width - 300, height - 300, 250.0f, 250.0f, t); // Line joints drawLines(vg, 50, height-50, 600, 50, t); // Line caps drawWidths(vg, 10, 50, 30); // Line caps drawCaps(vg, 10, 300, 30); nvgSave(vg); if (blowup) { nvgRotate(vg, sinf(t*0.3f)*5.0f/180.0f*NVG_PI); nvgScale(vg, 2.0f, 2.0f); } // Widgets drawWindow(vg, "Widgets `n Stuff", 50, 50, 300, 400); x = 60; y = 95; drawSearchBox(vg, "Search", x,y,280,25); y += 40; drawDropDown(vg, "Effects", x,y,280,28); popy = y + 14; y += 45; // Form drawLabel(vg, "Login", x,y, 280,20); y += 25; drawEditBox(vg, "Email", x,y, 280,28); y += 35; drawEditBox(vg, "Password", x,y, 280,28); y += 38; drawCheckBox(vg, "Remember me", x,y, 140,28); drawButton(vg, ICON_LOGIN, "Sign in", x+138, y, 140, 28, nvgRGBA(0,96,128,255)); y += 45; // Slider drawLabel(vg, "Diameter", x,y, 280,20); y += 25; drawEditBoxNum(vg, "123.00", "px", x+180,y, 100,28); drawSlider(vg, 0.4f, x,y, 170,28); y += 55; drawButton(vg, ICON_TRASH, "Delete", x, y, 160, 28, nvgRGBA(128,16,8,255)); drawButton(vg, 0, "Cancel", x+170, y, 110, 28, nvgRGBA(0,0,0,0)); // Thumbnails box drawThumbnails(vg, 365, popy-30, 160, 300, data->images, 12, t); nvgRestore(vg); }
void mouseEnter(void) { mouseIn = 1; drawSlider(actionRects[3][0].rect); }
void SliderView::draw() { View::draw(); drawOkButton(okFocused_); drawCancelButton(cancelFocused_); drawSlider(); drawValue(); }
void QvisOpacitySlider::paintSlider( QPainter *p, const QPalette &, const QRect &r ) { QPoint bo = p->brushOrigin(); p->setBrushOrigin(r.topLeft()); drawSlider(p, r.x(), r.y(), r.width(), r.height()); p->setBrushOrigin(bo); }
void SwitchButton::paintEvent(QPaintEvent *) { //绘制准备工作,启用反锯齿 QPainter painter(this); painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); //绘制背景 drawBg(&painter); //绘制滑块 drawSlider(&painter); }
void createSlider(DARect rect) { /* fill square excluding borders */ XFillRectangle(DADisplay, pixmap, colors->black, rect.x + 1, rect.y + 1, rect.width - 2, rect.height - 2); drawSunkenFrame(rect); drawSlider(rect); }
void DisplayGUI::drawMenu() { display->clear(); if(root == NULL){ display->gotoXY(0, 0); display->print("Error! ROOT UNDEFINED"); } else{ drawStatusBar(); drawSlider(currentMenu->getOverallItemNumber(), currentSelection); drawEntrys(); drawCursor(); } display->renderAll(); }
void SliderRuler::paintEvent(QPaintEvent *) { //绘制准备工作,启用反锯齿 QPainter painter(this); painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); //绘制背景 drawBg(&painter); //绘制标尺 drawRule(&painter); //绘制滑块 drawSlider(&painter); //绘制当前值的提示 drawTip(&painter); }
void Slider::paintEvent(QPaintEvent* /*e*/) { QPainter p; if (p.begin(this)) { if (d_scalePos != None) { p.fillRect(rect(), palette().window()); d_scale.draw(&p); } drawSlider(&p, d_sliderRect); } p.end(); }
void SliderConstraintDemo::clientMoveAndDisplay() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); float dt = float(getDeltaTimeMicroseconds()) * 0.000001f; //during idle mode, just run 1 simulation step maximum int maxSimSubSteps = m_idle ? 1 : 1; if(m_idle) { dt = 1.0/420.f; } int numSimSteps = m_dynamicsWorld->stepSimulation(dt,maxSimSubSteps); //optional but useful: debug drawing m_dynamicsWorld->debugDrawWorld(); bool verbose = false; if (verbose) { if (!numSimSteps) printf("Interpolated transforms\n"); else { if (numSimSteps > maxSimSubSteps) { //detect dropping frames printf("Dropped (%i) simulation steps out of %i\n",numSimSteps - maxSimSubSteps,numSimSteps); } else { printf("Simulated (%i) steps\n",numSimSteps); } } } renderme(); drawSlider(spSlider1); drawSlider(spSlider2); glFlush(); glutSwapBuffers(); } // SliderConstraintDemo::clientMoveAndDisplay()
void mouseLeave(void) { mouseIn = 0; /* mouse pointer left the dockapp window */ DAProcessActionRects(0, 0, actionRects[4], 2, NULL); /* if the button is still depressed, make it go up again. */ /* TODO: Use data in actionRects[4] here instead of below check */ if (buttonDown != NULL) btnUp(0, 0, *buttonDown, NULL); drawSlider(actionRects[4][1].rect); }
void ThinSlider::paintEvent(QPaintEvent* /*ev*/) { QPainter p(this); /* Scale is not supported if (p.begin(this)) { if (d_scalePos != None) { p.fillRect(rect(), palette().window()); d_scale.draw(&p); } drawSlider(&p, d_sliderRect); } p.end(); */ drawSlider(&p, d_sliderRect); }
//! Draw the QwtSlider void QwtSlider::draw(QPainter *painter, const QRect&) { if (d_data->scalePos != NoScale) { #if QT_VERSION < 0x040000 scaleDraw()->draw(painter, colorGroup()); #else scaleDraw()->draw(painter, palette()); #endif } drawSlider(painter, d_data->sliderRect); if ( hasFocus() ) QwtPainter::drawFocusRect(painter, this, d_data->sliderRect); }
void ScrollPanner::paintEvent(QPaintEvent *) { QPainter p(this); p.setPen(m_pen); p.setBrush(m_brush); p.setOpacity(m_opacity); drawBackground(p, rect().adjusted(0,0,-1,-1)); p.setPen(m_panPen); p.setBrush(m_panBrush); p.setOpacity(m_panOpacity); drawSlider(p, QRect(m_valueXpan, m_valueYpan, m_sizeXpan, m_sizeYpan).adjusted(0,0,-1,-1)); }
//! Draw the QwtSlider void QwtSlider::draw(QPainter *painter, const QRect&) { if (d_scalePos != None) scaleDraw()->draw(painter); drawSlider(painter, d_sliderRect); if ( hasFocus() ) { const QRect rect = d_sliderRect; #if QT_VERSION < 300 style().drawFocusRect(painter, rect, colorGroup()); #else style().drawPrimitive(QStyle::PE_FocusRect, painter, rect, colorGroup()); #endif } }
void UIFloatSlider::drawContent() { if(!value) return; float position; if (min!=max) { position = std::min(1.0f, ((*value) - min) / ((float)max-min)); } else { if(dragging) { position = std::max(0.0f, std::min(1.0f, *value / (old_value * 2.0f))); } else { position = 0.5f; } } drawSlider(position); }
void sliderMove(int x, int y, DARect rect, void *data) { if (buttonDown == NULL /* || rect.x != buttonDown->x || rect.y != buttonDown->y || rect.width != buttonDown->width || rect.height != buttonDown->height */) return; sliderPos = (float)(rect.height - y) / (float)rect.height; if (sliderPos > 1.0) sliderPos = 1.0; if (sliderPos < 0.0) sliderPos = 0.0; drawSlider(rect); }
/*! Qt paint event handler \param event Paint event */ void QwtSlider::paintEvent( QPaintEvent *event ) { QPainter painter( this ); painter.setClipRegion( event->region() ); QStyleOption opt; opt.init(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this); if ( d_data->scalePosition != QwtSlider::NoScale ) { if ( !d_data->sliderRect.contains( event->rect() ) ) scaleDraw()->draw( &painter, palette() ); } drawSlider( &painter, d_data->sliderRect ); if ( hasFocus() ) QwtPainter::drawFocusRect( &painter, this, d_data->sliderRect ); }
void CursynthGui::drawControl(const Control* control, bool active) { DisplayDetails* details = details_lookup_[control]; if (!details) return; // Draw label. if (details->label.size()) { if (active) attron(A_BOLD); move(details->y, details->x); printw(gettext(details->label.c_str())); attroff(A_BOLD); } // Draw status. if (control->display_strings().size()) { int display_index = static_cast<int>(control->current_value()); drawText(details, control->display_strings()[display_index], active); } else drawSlider(details, control->getPercentage(), active); }
void displayUISettings() { // getting window dimensions GLshort w=glutGet(GLUT_WINDOW_WIDTH); uiS.height=glutGet(GLUT_WINDOW_HEIGHT); GLshort percUnitW = w/100; GLshort percUnitH = uiS.height/100; glDisable(GL_DEPTH_TEST); glClear(GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glPushMatrix(); //to prepare for return to 3D glLoadIdentity(); gluOrtho2D(0,w,0,uiS.height); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); //UI background 20% of screen gap from edges glColor3f(1,1,1); //white glBegin(GL_QUADS); glVertex2s(percUnitW*20,percUnitH*20); glVertex2s(w-percUnitW*20,percUnitH*20); glVertex2s(w-percUnitW*20,uiS.height-percUnitH*20); glVertex2s(percUnitW*20,uiS.height-percUnitH*20); glEnd(); glColor3f(0,0,1); displayText("SETTINGS:", percUnitW*22, percUnitH*78, 'l'); //draw chosen colour if not random if(!tmpState.colourRand){ uiS.chosenClr[0] = percUnitW*25; uiS.chosenClr[1] = percUnitH*55; glColor3fv(tmpState.colour); glBegin(GL_QUADS); glVertex2sv(uiS.chosenClr); glVertex2s(uiS.chosenClr[0]+20, uiS.chosenClr[1]); glVertex2s(uiS.chosenClr[0]+20, uiS.chosenClr[1]+20); glVertex2s(uiS.chosenClr[0], uiS.chosenClr[1]+20); glEnd(); displayText("Chosen Colour", uiS.chosenClr[0]+25, uiS.chosenClr[1]+2, 'm'); } //for colourpicker triangle drawColourPicker(percUnitW, percUnitH); //check box for selection of random colour uiS.randClr[0]=percUnitW*35; uiS.randClr[1]=percUnitH*55; drawCheckBox(uiS.randClr[0],uiS.randClr[1],"Random Colour"); //if random colour selected draw cross if(tmpState.colourRand){ drawCheck(uiS.randClr[0],uiS.randClr[1]); } //for selection of angle: draw a box then distribute evenly within 9 circles of radius 10, in 3 rows of 3, filled in for chosen angle drawAnglePresets(percUnitW, percUnitH); //check box for selection of random angle uiS.randAng[0] = percUnitW*60; uiS.randAng[1] = percUnitH*55; drawCheckBox(uiS.randAng[0], uiS.randAng[1] ,"Random Angle"); //slider bar for selection of lift charge/intial velocity uiS.velocityL[0]= percUnitW*23; uiS.velocityL[1]= percUnitH*42; uiS.velocityR[0]= percUnitW*65; uiS.velocityR[1]= percUnitH*42; snprintf(uiS.velocityMnTxt, 6, "%4.1f", tmpState.velocityMin); snprintf(uiS.velocityMxTxt, 6, "%4.1f", tmpState.velocityMax); displayText("Lift Charge giving initial velocity in m/s:", uiS.velocityL[0]-20, uiS.velocityL[1]+15, 'm'); drawSlider(uiS.velocityL, uiS.velocityR); displayText(uiS.velocityMnTxt, uiS.velocityL[0]-30, uiS.velocityL[1]-4, 'm'); displayText(uiS.velocityMxTxt, uiS.velocityR[0]+5, uiS.velocityR[1]-4, 'm'); //x coords of chosen velocity determined by (chosenValue - minValue)*((xRight - xLeft)/(maxValue-minValue)) + xLeft uiS.velocityChX = ((tmpState.velocityCh - tmpState.velocityMin)*(((float)uiS.velocityR[0]-(float)uiS.velocityL[0])/(tmpState.velocityMax-tmpState.velocityMin))+(float)uiS.velocityL[0]); drawMarker(uiS.velocityChX, uiS.velocityL[1]); snprintf(uiS.velocityChTxt, 6, "%3.1f", tmpState.velocityCh); displayText(uiS.velocityChTxt, uiS.velocityChX-10, uiS.velocityL[1]-17, 'm'); //slider bar for selection of fuser timer uiS.fuseL[0]= percUnitW*23; uiS.fuseL[1]= percUnitH*32; uiS.fuseR[0]= percUnitW*65; uiS.fuseR[1]= percUnitH*32; snprintf(uiS.fuseMnTxt, 6, "%5.1f", tmpState.fuseMin); snprintf(uiS.fuseMxTxt, 6, "%5.1f", tmpState.fuseMax); displayText("Fuse timer from launch to explosion in milliseconds:", uiS.fuseL[0]-20, uiS.fuseL[1]+15, 'm'); drawSlider(uiS.fuseL, uiS.fuseR); displayText(uiS.fuseMnTxt, uiS.fuseL[0]-40, uiS.fuseL[1]-4, 'm'); displayText(uiS.fuseMxTxt, uiS.fuseR[0]+5, uiS.fuseR[1]-4, 'm'); //x coords of chosen fuse determined by (chosenValue - minValue)*((xRight - xLeft)/(maxValue-minValue)) + xLeft uiS.fuseChX = ((tmpState.fuseCh - tmpState.fuseMin)*(((float)uiS.fuseR[0]-(float)uiS.fuseL[0])/(tmpState.fuseMax-tmpState.fuseMin))+(float)uiS.fuseL[0]); drawMarker(uiS.fuseChX, uiS.fuseL[1]); snprintf(uiS.fuseChTxt, 6, "%5.1f", tmpState.fuseCh); displayText(uiS.fuseChTxt, uiS.fuseChX-10, uiS.fuseL[1]-17, 'm'); //save button uiS.saveBL[0] = percUnitW*70; uiS.saveBL[1] = percUnitH*31; uiS.saveTR[0] = percUnitW*79; uiS.saveTR[1] = percUnitH*39; glColor3f(0, 0.5, 0); glBegin(GL_QUADS); glVertex2sv(uiS.saveBL); glVertex2s(uiS.saveTR[0], uiS.saveBL[1]); glVertex2sv(uiS.saveTR); glVertex2s(uiS.saveBL[0], uiS.saveTR[1]); glEnd(); displayText("Save", uiS.saveBL[0]+5, uiS.saveBL[1]+5,'l'); //underline S glLineWidth(2); glBegin(GL_LINES); glVertex2s(uiS.saveBL[0]+6,uiS.saveBL[1]+3); glVertex2s(uiS.saveBL[0]+18,uiS.saveBL[1]+3); glEnd(); glLineWidth(1); //cancel button uiS.cancelBL[0] = percUnitW*70; uiS.cancelBL[1] = percUnitH*22; uiS.cancelTR[0] = percUnitW*79; uiS.cancelTR[1] = percUnitH*30; glColor3f(0.6, 0, 0); glBegin(GL_QUADS); glVertex2sv(uiS.cancelBL); glVertex2s(uiS.cancelTR[0], uiS.cancelBL[1]); glVertex2sv(uiS.cancelTR); glVertex2s(uiS.cancelBL[0], uiS.cancelTR[1]); glEnd(); displayText("Cancel", uiS.cancelBL[0]+5, uiS.cancelBL[1]+5,'l'); //underline C glLineWidth(2); glBegin(GL_LINES); glVertex2s(uiS.cancelBL[0]+6,uiS.cancelBL[1]+3); glVertex2s(uiS.cancelBL[0]+18,uiS.cancelBL[1]+3); glEnd(); glLineWidth(1); // returning to 3D glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); glEnable(GL_DEPTH_TEST); }
//=================================================== draw widget //=============================================================== void TFWidgetRen::draw_widget() { glColor4f(.1, .07, .57, 1); //balls float spos[3] = {0,0,0}; drawSphere(spos, blball); //bottom left spos[0] = width; drawSphere(spos, brball); //bottom right spos[1] = height; drawSphere(spos, trball); //top right spos[0] = 0; drawSphere(spos, tlball); //top left glColor4f(.09, .34, .55, 1); //bars float bpos[3] = {0,0,0}; drawBar(-90, WdgXAxis, height, bpos, lbar); //left drawBar(90, WdgYAxis, width, bpos, bbar); //bottom bpos[1] = height; drawBar(90, WdgYAxis, width, bpos, tbar); //top bpos[0] = width; bpos[1] = 0; drawBar(-90, WdgXAxis, height, bpos, rbar); //right glColor4f(1,1,1,0); //transfer function map depth glLoadName(tfsheet1); //glEnable(GL_TEXTURE_3D_EXT); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable(GL_LIGHTING); //glBindTexture(GL_TEXTURE_3D_EXT, gluvv.tf.ptextex); glBegin(GL_QUADS);{ //draw the transfer function glTexCoord3f(0, 0, .33333); glVertex3f(barRad*1.5, barRad*1.5, 0); glTexCoord3f(1, 0, .33333); glVertex3f(width-barRad*1.5, barRad*1.5, 0); glTexCoord3f(1, 1, .33333); glVertex3f(width-barRad*1.5, height-barRad*1.5, 0); glTexCoord3f(0, 1, .33333); glVertex3f(barRad*1.5, height-barRad*1.5,0); } glEnd(); glDisable(GL_BLEND); glDisable(GL_TEXTURE_3D_EXT); glEnable(GL_LIGHTING); //--------------------------- draw_probe(); //draw probe data value //-------------- load new pixel texture ---------------------------------- if(gluvv.tf.loadme){ clearPtex(); tris->rasterize(gluvv.tf.ptex); brush->rasterize(gluvv.tf.ptex); loadPtex(); gluvv.tf.loadme = 0; } //---------------------------------------------------------------------- if(pickedTri){ //boundary emphasis slider LevWidget * tt; if(tt = tris->get(pickedTri)){ float slider = tt->getBE(); float bepos[3] = {(width - 2*ballRad)*slider + ballRad, height, 0}; drawSlider(90, WdgYAxis, bepos, beslider); } } glColor4f(1,1,1,1); //transfer function map color glLoadName(tfsheet1); glEnable(GL_TEXTURE_3D_EXT); if(mode == colorBlend){ glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } else glDisable(GL_BLEND); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_EQUAL); glDisable(GL_LIGHTING); glBindTexture(GL_TEXTURE_3D_EXT, gluvv.tf.ptextex); glBegin(GL_QUADS);{ //draw the transfer function glTexCoord3f(0, 0, .5); glVertex3f(barRad*1.5, barRad*1.5, 0); glTexCoord3f(1, 0, .5); glVertex3f(width-barRad*1.5, barRad*1.5, 0); glTexCoord3f(1, 1, .5); glVertex3f(width-barRad*1.5, height-barRad*1.5, 0); glTexCoord3f(0, 1, .5); glVertex3f(barRad*1.5, height-barRad*1.5,0); } glEnd(); glDepthFunc(GL_LESS); glDisable(GL_BLEND); glDisable(GL_TEXTURE_3D_EXT); glEnable(GL_LIGHTING); //---------------------------- glPushMatrix();{ //draw levoy triangles glTranslatef(ballRad, ballRad, ballRad); tris->draw(); } glPopMatrix(); if(gluvv.picking) brush->draw(); }
Boolean MCNativeTheme::drawwidget(MCDC *dc, const MCWidgetInfo & winfo, const MCRectangle & drect) { GC gc ; MCThemeDrawInfo di ; MCDC * t_dc = dc ; Boolean ret = False; static MCRectangle gtkpixrect = {0,0,0,0}; Display *display = MCdpy; GdkRectangle rect; GdkRectangle cliprect; MCRectangle trect = drect; MCRectangle crect = drect; if (winfo.type == WTHEME_TYPE_TAB) crect.height--; //make sure tab doesn't draw over tab pane rect = MCRectangleToGdkRectangle(trect); cliprect = MCRectangleToGdkRectangle(crect); rect.x = cliprect.x = 0; rect.y = cliprect.y = 0; if (rect.width <= 0 || rect.height <= 0) return False; GtkThemeWidgetType moztype; gint flags = 0; GtkWidgetState state = getpartandstate(winfo, moztype, flags); switch(winfo.type) { case WTHEME_TYPE_TABPANE: state.curpos = 0; if(winfo.attributes & WTHEME_ATT_TABPOSBOTTOM || winfo.attributes & WTHEME_ATT_TABPOSTOP) state.maxpos = rect.width; else if(winfo.attributes & WTHEME_ATT_TABPOSLEFT || winfo.attributes & WTHEME_ATT_TABPOSRIGHT) state.maxpos = rect.height; else state.maxpos = rect.width; // XXX therefore default tabpos is top if(winfo.datatype == WTHEME_DATA_TABPANE) { MCWidgetTabPaneInfo *inf = (MCWidgetTabPaneInfo*)winfo.data; state.curpos = inf->gap_start - 1; state.maxpos = inf->gap_length + 2; } make_theme_info ( di, moztype, gtkpix, &rect, &cliprect, state, flags, crect); t_dc -> drawtheme ( THEME_DRAW_TYPE_GTK, &di ) ; ret = True; break; case WTHEME_TYPE_COMBO: { MCWidgetInfo twinfo = winfo; MCRectangle comboentryrect,combobuttonrect; //draw text box twinfo.part = WTHEME_PART_COMBOTEXT; getwidgetrect(twinfo, WTHEME_METRIC_PARTSIZE,drect,comboentryrect); twinfo.part = WTHEME_PART_COMBOBUTTON; getwidgetrect(twinfo, WTHEME_METRIC_PARTSIZE,drect,combobuttonrect); twinfo.type = WTHEME_TYPE_TEXTFIELD_FRAME; drawwidget(dc, twinfo, comboentryrect); twinfo.type = WTHEME_TYPE_COMBOBUTTON; drawwidget(dc, twinfo, combobuttonrect); return True; } #define B_WIDTH 3 case WTHEME_TYPE_TEXTFIELD_FRAME: { GtkWidgetState t_old_state; t_old_state = state; MCRectangle t_old_clip; t_old_clip = dc -> getclip(); // crect is the target rectangle for the whole control // cliprect and rect are essentially the same GdkRectangle t_bounds; MCRectangle t_dst_bounds; MCRectangle t_clip; // First render the top and bottom borders. We render a control 8 pixels // high, but clipped to the border width. t_bounds . x = 0; t_bounds . y = 0; t_bounds . width = rect . width; t_bounds . height = 8; MCU_set_rect(t_dst_bounds, crect . x, crect . y, crect . width, 8); MCU_set_rect(t_clip, crect . x, crect . y, crect . width, B_WIDTH); make_theme_info(di, moztype, gtkpix, &t_bounds, &t_bounds, state, flags, t_dst_bounds); dc -> setclip(t_clip); dc -> drawtheme(THEME_DRAW_TYPE_GTK, &di); MCU_set_rect(t_dst_bounds, crect . x, crect . y + crect . height - 8, crect . width, 8); MCU_set_rect(t_clip, crect . x, crect . y + crect . height - B_WIDTH, crect . width, B_WIDTH); make_theme_info(di, moztype, gtkpix, &t_bounds, &t_bounds, state, flags, t_dst_bounds); dc -> setclip(t_clip); dc -> drawtheme(THEME_DRAW_TYPE_GTK, &di); // Now render the left and right borders. We render a control 8 pixels // wide, but clipped to the border width t_bounds . x = 0; t_bounds . y = 0; t_bounds . width = 8; t_bounds . height = rect . height; MCU_set_rect(t_dst_bounds, crect . x, crect . y, 8, crect . height); MCU_set_rect(t_clip, crect . x, crect . y + B_WIDTH, B_WIDTH, crect . height - 2 * B_WIDTH); make_theme_info(di, moztype, gtkpix, &t_bounds, &t_bounds, state, flags, t_dst_bounds); dc -> setclip(t_clip); dc -> drawtheme(THEME_DRAW_TYPE_GTK, &di); MCU_set_rect(t_dst_bounds, crect . x + crect . width - 8, crect . y, 8, crect . height); MCU_set_rect(t_clip, crect . x + crect . width - B_WIDTH, crect . y + B_WIDTH, B_WIDTH, crect . height - 2 * B_WIDTH); make_theme_info(di, moztype, gtkpix, &t_bounds, &t_bounds, state, flags, t_dst_bounds); dc -> setclip(t_clip); dc -> drawtheme(THEME_DRAW_TYPE_GTK, &di); dc -> setclip(t_old_clip); } break ; case WTHEME_TYPE_SLIDER: drawSlider(dc, winfo, drect); return True; break; case WTHEME_TYPE_SCROLLBAR: drawScrollbar(dc, winfo, drect); return True; break; case WTHEME_TYPE_PROGRESSBAR: ret = drawprogressbar(dc, winfo, drect); return ret; break; case WTHEME_TYPE_GROUP_FRAME: make_theme_info ( di, moztype, gtkpix, &rect, &cliprect, state, flags, crect); t_dc -> drawtheme ( THEME_DRAW_TYPE_GTK, &di ) ; ret = True; break; default: make_theme_info ( di, moztype, gtkpix, &rect, &cliprect, state, flags, crect); t_dc -> drawtheme ( THEME_DRAW_TYPE_GTK, &di ) ; ret = True; } return ret; }
/* This Proc handles the on-the-fly data CD writing */ MRESULT EXPENTRY waveinfoStatusDialogProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) { char text[CCHMAXPATH*2 +10]; char title[CCHMAXPATH]; SWCNTRL swctl; PID pid; int a; switch (msg) { case WM_PAINT: { HPS hps; RECTL rcl, rclSource; POINTL ptl; LONG lTemp; BOOL bUseCustomPainting=TRUE; LONG lWidthX; LONG lWidthY; LONG lColor; ULONG attrFound; if(bUseCustomPainting) { // if(allBMPs[CTRLIDX_BG].hbm) { if(1) { hps=WinBeginPaint(hwnd, NULLHANDLE, &rcl); rclSource.xLeft=0; rclSource.yBottom=0; #if 0 rclSource.yTop=allBMPs[CTRLIDX_BG].bmpInfoHdr.cy; rclSource.xRight=allBMPs[CTRLIDX_BG].bmpInfoHdr.cx; lTemp=rcl.xLeft/rclSource.xRight; ptl.x=lTemp*rclSource.xRight; lTemp=rcl.yBottom/rclSource.yTop; lTemp*=rclSource.yTop; #endif // rcl.yBottom+=4; rclSource=rcl; rcl.yTop+=4; WinFillRect(hps, &rclSource, CLR_RED); /* Border */ lWidthX=WinQuerySysValue(HWND_DESKTOP, SV_CXBORDER); lWidthY=WinQuerySysValue(HWND_DESKTOP, SV_CYBORDER); GpiCreateLogColorTable(hps, 0, LCOLF_RGB, 0, 0, NULL); #if 0 if ( (WinQueryPresParam(hwnd, PP_BACKGROUNDCOLOR, 0, &attrFound, sizeof(attrFound), &lColor, QPF_PURERGBCOLOR)) == 0 ) lColor = WinQuerySysColor(HWND_DESKTOP, SYSCLR_DIALOGBACKGROUND, 0); #endif WinQueryWindowRect(hwnd, &rcl); ptl.x=1; ptl.y=0; GpiMove(hps, &ptl); GpiSetColor(hps, CLR_BLACK); ptl.x=rcl.xRight-1; GpiLine(hps,&ptl); ptl.y=rcl.yTop-1; GpiLine(hps,&ptl); GpiSetColor(hps, SYSCLR_SHADOW); ptl.x=rcl.xLeft; GpiLine(hps,&ptl); ptl.y=0; GpiLine(hps,&ptl); rcl.yTop-=1; rcl.yBottom+=1; rcl.xLeft+=1; rcl.xRight-=1; WinDrawBorder( hps,&rcl, 1, 1, 0, 0, 0x400); rcl.yTop-=1; rcl.yBottom+=1; rcl.xLeft+=1; rcl.xRight-=1; /* Get active border color */ if(WinQueryActiveWindow(HWND_DESKTOP)==hwnd) { if ( (WinQueryPresParam(hwnd, PP_BORDERCOLOR, 0, &attrFound, sizeof(attrFound), &lColor, QPF_PURERGBCOLOR)) == 0 ) lColor = WinQuerySysColor(HWND_DESKTOP, SYSCLR_DIALOGBACKGROUND, 0); } else { /* Inactive border color */ if ( (WinQueryPresParam(hwnd, PP_INACTIVECOLOR, 0, &attrFound, sizeof(attrFound), &lColor, QPF_PURERGBCOLOR)) == 0 ) lColor = WinQuerySysColor(HWND_DESKTOP, SYSCLR_DIALOGBACKGROUND, 0); } /* Get Border size */ WinSendMsg(hwnd, WM_QUERYBORDERSIZE, MPFROMP(&ptl),0); WinDrawBorder(hps,&rcl, ptl.x-2, ptl.y-2, lColor, 0, 0); #if 0 while(ptl.x<rcl.xRight) { ptl.y=lTemp; while(ptl.y<rcl.yTop) {/* y direction */ //DosBeep(5000,100); WinDrawBitmap(hps, allBMPs[CTRLIDX_BG].hbm, &rclSource, (PPOINTL)&ptl, 0, 0, DBM_IMAGEATTRS); ptl.y+=allBMPs[CTRLIDX_BG].bmpInfoHdr.cy; //DosSleep(200); }; ptl.x+=allBMPs[CTRLIDX_BG].bmpInfoHdr.cx; }; #endif WinEndPaint(hps); return (MRESULT)0; } } break; } case WM_DRAWITEM: switch(SHORT1FROMMP(mp1)) { case SLIDERID: return drawSlider(hwnd, msg, mp1, mp2, SHORT1FROMMP(mp1)); default: break; } break; case WM_INITDLG: /* Add switch entry */ memset(&swctl,0,sizeof(swctl)); WinQueryWindowProcess(hwnd,&pid,NULL); swctl.hwnd=hwnd; swctl.uchVisibility=SWL_VISIBLE; swctl.idProcess=pid; swctl.bProgType=PROG_DEFAULT; swctl.fbJump=SWL_JUMPABLE; WinAddSwitchEntry(&swctl); #if 0 WinMessageBox( HWND_DESKTOP, HWND_DESKTOP, "", "", 0UL, MB_OK | MB_ICONEXCLAMATION|MB_MOVEABLE ); #endif // oldProc=WinSubclassWindow(WinWindowFromID(hwnd, IDST_TEXT), newProc); hwndNew=WinCreateWindow(hwnd, CLASS_NAME, "Title", WS_VISIBLE |WS_TABSTOP, 10,50, SLIDERID, 40, hwnd, HWND_TOP, SLIDERID, NULLHANDLE, NULLHANDLE); WinShowWindow(hwnd, TRUE); // WinQueryWindowPos(hwndNew,&swpSl); return (MRESULT) TRUE; /* WM_APPTERMINATENOTIFY messages are sent from the helper programs e.g. format checker. */ case WM_CLOSE: WinDismissDlg(hwnd,0); return FALSE; case WM_CONTROL: { switch(SHORT2FROMMP(mp1)) { case SLN_SLIDERTRACK: { switch(SHORT1FROMMP(mp1)) { case SLIDERID: DosBeep(5000, 10); break; default: break; }/* switch */ return (MRESULT) 0; break; } case SLN_CHANGE: { switch(SHORT1FROMMP(mp1)) { case SLIDERID: DosBeep(500, 100); break; default: break; }/* switch */ return (MRESULT)TRUE; } default: break; }/* switch */ break; }/* WM_CONTROL */ case WM_COMMAND: switch(SHORT1FROMMP(mp1)) { case DID_OK: /* User pressed the OK button */ WinPostMsg(hwnd,WM_CLOSE,0,0); break; case IDPB_RIGHT: WinPostMsg( WinWindowFromID(hwnd, SLIDERID), SLM_SETSLIDERINFO, MPFROM2SHORT(SMA_SLIDERARMPOSITION, SMA_RANGEVALUE), MPFROMLONG( (LONG) 70 )); break; case IDPB_LEFT: WinPostMsg( WinWindowFromID(hwnd, SLIDERID), SLM_SETSLIDERINFO, MPFROM2SHORT(SMA_SLIDERARMPOSITION, SMA_RANGEVALUE), MPFROMLONG( (LONG) 20 )); break; case IDPB_SIZE: { SWP swp; RXSTRING arg[2]; /* argument string for REXX */ RXSTRING rexxretval; /* return value from REXX */ APIRET rc; /* return code from REXX */ SHORT rexxrc = 0; /* return code from function */ char chrThis[20]; char chrHwnd[20]; char *str = "These words will be swapped"; /* text to swap */ #if 0 RexxRegisterFunctionExe("CWRXFunc1", (PFN)rexxFunc1); sprintf(chrThis, "%d",123); sprintf(chrHwnd, "%d", WinQueryWindow(hwnd,QW_PARENT)); /* By setting the strlength of the output RXSTRING to zero, we */ /* force the interpreter to allocate memory and return it to us. */ /* We could provide a buffer for the interpreter to use instead. */ rexxretval.strlength = 0L; /* initialize return to empty*/ MAKERXSTRING(arg[0], chrHwnd, strlen(chrHwnd));/* create input argument */ MAKERXSTRING(arg[1], chrThis, strlen(chrThis));/* create input argument */ /* Here we call the interpreter. We don't really need to use */ /* all the casts in this call; they just help illustrate */ /* the data types used. */ rc=RexxStart((LONG) 2, /* number of arguments */ (PRXSTRING) &arg, /* array of arguments */ (PSZ) "G:\\Projects_working\\mmclasses-0.3.0\\testfunc.cwr",/* name of REXX file */ (PRXSTRING) 0, /* No INSTORE used */ (PSZ) "CWRXX", /* Command env. name */ (LONG) RXSUBROUTINE, /* Code for how invoked */ (PRXSYSEXIT) 0, /* No EXITs on this call */ (PSHORT) &rexxrc, /* Rexx program output */ (PRXSTRING) &rexxretval ); /* Rexx program output */ sprintf(text,"rc: %d, function return code: %d, %s ", rc, (int) rexxrc, rexxretval.strptr); WinMessageBox(HWND_DESKTOP, HWND_DESKTOP, text, "", 1234, MB_OK|MB_MOVEABLE); DosFreeMem(rexxretval.strptr); /* Release storage given to us by REXX. */ #endif // WinQueryWindowPos(hwndNew,&swp); // WinSetWindowPos(hwndNew, NULLHANDLE, 0, 0, swp.cx-30, swp.cy+10,SWP_SIZE); break; } default: break; } return (MRESULT) FALSE; default: break; }/* switch */ return WinDefDlgProc( hwnd, msg, mp1, mp2); }
void UIIntSlider::drawContent() { float position = std::min(1.0f, ((*value) - min) / ((float)max-min)); drawSlider(position); }