Example #1
0
int
main(int argc, char **argv) {
	int i;
	char *b, *b0;
	ssize_t s;
	progname = argv[0];
	if (argc != 2) return usage();
	fontname = argv[1];
	s = read_file(&b0);
	b = b0;
	if (!(i = find_font(&b, &s))) {
		fprintf(stderr, "%s: Font %s not found in %s.\n",
		    progname, fontname, charfile);
		exit(EXIT_FAILURE);
	}
	out_font(b, s, i);
	free(b0);
	return EXIT_SUCCESS;
}
void RDPanelButton::WriteKeycap(int secs)
{
    QString text=button_text;
    QPixmap *pix=new QPixmap(size().width(),size().height());
    QPainter *p=new QPainter(pix);
    if(button_state) {
        if(button_flash) {
            if(button_flash_state) {
                p->fillRect(0,0,size().width(),size().height(),button_color);
                p->setPen(RDGetTextColor(button_color));
            }
            else {
                p->fillRect(0,0,size().width(),size().height(),button_default_color);
                p->setPen(RDGetTextColor(button_default_color));
            }
        }
        else {
            p->fillRect(0,0,size().width(),size().height(),button_color);
            p->setPen(RDGetTextColor(button_color));
        }
    }
    else {
        p->fillRect(0,0,size().width(),size().height(),button_color);
        p->setPen(RDGetTextColor(button_color));
    }

    //
    // Button Title
    //
    QFont font("helvetica",13,QFont::Normal);
    font.setPixelSize(13);
    QFontMetrics m(font);
    p->setFont(font);
    p->drawText(RDPANEL_BUTTON_MARGIN,m.lineSpacing(),
                GetNextLine(&text,m,size().width()-3*RDPANEL_BUTTON_MARGIN));
    p->drawText(RDPANEL_BUTTON_MARGIN,2*m.lineSpacing(),
                GetNextLine(&text,m,size().width()-3*RDPANEL_BUTTON_MARGIN));
    p->drawText(RDPANEL_BUTTON_MARGIN,3*m.lineSpacing(),
                GetNextLine(&text,m,size().width()-3*RDPANEL_BUTTON_MARGIN));

    //
    // Time Field & Output Text
    //
    if(!button_text.isEmpty()) {
        if(secs<0) {
            QFont out_font("helvetica",13,QFont::Normal);
            out_font.setPixelSize(13);
            p->setFont(out_font);
            if(button_pause_when_finished) {
                p->drawText(RDPANEL_BUTTON_MARGIN,size().height()-RDPANEL_BUTTON_MARGIN,"Finished");
            }
            else {
                if(button_active_length>=0) {
                    p->drawText(RDPANEL_BUTTON_MARGIN,size().height()-
                                RDPANEL_BUTTON_MARGIN,
                                RDGetTimeLength(button_active_length+1000,true,false));
                }
                else {
                    p->drawText(RDPANEL_BUTTON_MARGIN,size().height()-
                                RDPANEL_BUTTON_MARGIN,tr("No Audio"));
                }
            }
        }
        else {
            if(secs>8) {
                p->drawText(RDPANEL_BUTTON_MARGIN,size().height()-RDPANEL_BUTTON_MARGIN,
                            RDGetTimeLength(1000*(secs+1),true,false));
            }
            else {
                QFont out_font("helvetica",18,QFont::Bold);
                out_font.setPixelSize(18);
                p->setFont(out_font);
                QString secstr=QString().sprintf(":%d",secs+1);
                p->drawText(RDPANEL_BUTTON_MARGIN,size().height()-RDPANEL_BUTTON_MARGIN,secstr);
            }
            QFont out_font("helvetica",18,QFont::Bold);
            out_font.setPixelSize(18);
            p->setFont(out_font);
            QFontMetrics om(out_font);
            p->drawText(size().width()-om.width(button_output_text)-
                        RDPANEL_BUTTON_MARGIN,
                        size().height()-RDPANEL_BUTTON_MARGIN,button_output_text);
        }
    }
    p->end();
    setPixmap(*pix);
    delete p;
    delete pix;
}