void main()
{
	
	initgraph(640, 480);
	setcaption("贪吃蛇游戏              作者;电子141丶赵磊");
	setfont(100,80,"宋体");
	xyprintf(90,100,"贪吃蛇");
	setfont(20,10,"宋体");
	xyprintf(90,350,"暂停:空格键                      方向:上 下 左 右");
	xyprintf(90,300,"按任意键开始游戏!!!               通关有奖励!!!");
	
	getch();
	closegraph();
	
	
	
	initgraph(640, 480);
	rectangle(10,10,500,470);
	
	gameplay();
	
	
	
	getch();
	closegraph();
}
示例#2
0
文件: ui.c 项目: h4ck3rm1k3/uTox
static void drawsettings_content(int x, int y, int w, int height)
{
    setcolor(C_TITLE);
    setfont(FONT_TEXT);
    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 5, "Name");

    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 29, "Status Message");

    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 123, "Audio Input Device");
    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 147, "Audio Output Device");
    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 171, "Video Input Device");

    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 228, "NOT YET");

    setfont(FONT_SELF_NAME);

    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 54, "Tox ID");

    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 76, "Preview");

    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 113, "Device Selection");

    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 195, "DPI Settings");

    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 218, "Save Settings");
}
示例#3
0
int main(void)
{
	int i;
	LOGFONT f;
	int where_table[] = {2, 3, 4, 6, 8, 10, 12, 15, 16, 20};

	initgraph(640, 480);
	loadimage(&welcome_bk, "images/welcome_bk.jpg");
	getfont(&f);                          
	f.lfHeight = 16;                     
	strcpy(f.lfFaceName, "宋体");        
	f.lfQuality = ANTIALIASED_QUALITY;    
	setfont(&f);                          // 设置字体样式
	welcome();
	for(i = 0; i < 10; i++)
	{	
		cleardevice();
		draw_map(where_table[i]);
		game(where_table[i], i);
		fflush(stdin);
		getch();
	}
	cleardevice();
	f.lfHeight = 72;
	setfont(&f);
	outtextxy(150, 180, "通关训练!");
	f.lfHeight = 12;
	setfont(&f);
	outtextxy(180, 400, "恭喜您获得了“点灯”挑战资格,敬请期待后序内容!");
	Sleep(5000);
	closegraph();
	return 0;
}
示例#4
0
void
world_display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    glColor3ub(255, 255, 255);
    setfont("helvetica", 18);
    
    if (mode == GL_LINEAR) {
        drawstr(100, 80, "end - z");
        drawstr(30, 95, "f   = ");
        drawstr(90, 110, "end - start");
        glBegin(GL_LINE_STRIP);
        glVertex2i(85, 90);
        glVertex2i(185, 90);
        glEnd();
    } else {
        drawstr(90, 80, "- (density * z)");
        drawstr(30, 95, "f   =   e");
        if (mode == GL_EXP2)
            drawstr(208, 68, "2");
    }
    
    setfont("helvetica", 12);
    drawstr(20, 180, "z is the distance in eye coordinates");
    drawstr(20, 195, "from origin to fragment being fogged.");
    
    glutSwapBuffers();
}
示例#5
0
void  rules()
{
	initgraph(850,600);
    setbkcolor(DARKGRAY);
	cleardevice();
	setcolor(LIGHTGREEN);
	setfont(60,0,"华文隶书");
	outtextxy(270,1,"游戏介绍");
	setcolor(LIGHTCYAN);
	setfont(40,0,"华文行楷");
    outtextxy(20,65,"1.黄颜色的小方块表示美味的食物。");
	outtextxy(20,110,"2.紫色的实心小圆表示可恶的地雷。");
	outtextxy(20,160,"3.绿色的实心小圆表示可恨的毒草。");
	outtextxy(20,210,"4.小蛇每吃到一个食物,身体便会增加一节。");
	outtextxy(20,260,"5.小蛇碰到地雷,身体会被炸掉一半。要小心哦!!");
	outtextxy(20,310,"6,小蛇碰到毒草,身体会变短一节。要小心哦!!");
	outtextxy(20,360,"7.小蛇的头撞到四周的墙会死。");
	outtextxy(20,410,"8.小蛇的头撞到自己的身体也会死亡。");
	outtextxy(20,460,"9.用鼠标点击下面的“→”区域,回到主页面。");
	outtextxy(20,510,"10.祝您好运!!!");
	setcolor(BROWN);
	setfont(60,0,"华文隶书");
    outtextxy(580,520,"→主页面");
	MOUSEMSG m; 
	while(true)
	{
	  m=GetMouseMsg();
	  switch(m.uMsg)
	  {
	  case WM_LBUTTONDOWN:
	   if(m.x>=580&&m.y>=520&&m.y<=580&&m.x<=820)
		   main();
	  }
	}
}
示例#6
0
文件: ui.c 项目: notadecent/uTox
static void drawfriend(int x, int y, int w, int height)
{
    FRIEND *f = sitem->data;

    drawalpha(BM_CONTACT, LIST_RIGHT + SCALE * 5, SCALE * 5, BM_CONTACT_WIDTH, BM_CONTACT_WIDTH, LIST_MAIN);

    setcolor(C_TITLE);
    setfont(FONT_TITLE);
    drawtextrange(LIST_RIGHT + 30 * SCALE, width - 62 * SCALE, 9 * SCALE, f->name, f->name_length);

    setcolor(LIST_MAIN);
    setfont(FONT_STATUS);
    drawtextrange(LIST_RIGHT + 30 * SCALE, width - 62 * SCALE, 16 * SCALE, f->status_message, f->status_length);

    if(!f->calling) {
        button_call.c1 = C_GREEN;
        button_call.c2 = C_GREEN_LIGHT;
        button_call.c3 = C_GREEN_LIGHT;
        button_video.c1 = C_GREEN;
        button_video.c2 = C_GREEN_LIGHT;
        button_video.c3 = C_GREEN_LIGHT;

        return;
    }

    button_call.c1 = C_GRAY;
    button_call.c2 = C_GRAY;
    button_call.c3 = C_GRAY;
    button_video.c1 = C_GRAY;
    button_video.c2 = C_GRAY;
    button_video.c3 = C_GRAY;

    BUTTON *b;
    if(f->calling & 4) {
        b = &button_video;
    } else {
        b = &button_call;
    }

    switch(f->calling & 3) {
    case CALL_INVITED: {
        b->c1 = C_YELLOW;
        b->c2 = C_YELLOW_LIGHT;
        break;
    }

    case CALL_RINGING: {
        b->c1 = C_GRAY;
        b->c2 = C_GRAY;
        break;
    }

    case CALL_OK: {
        b->c1 = C_RED;
        b->c2 = C_RED_LIGHT;
        break;
    }
    }
}
示例#7
0
void
lighting_display(void)
{
    setfont("helvetica", 18);
    drawstr(10, light_pos[0].y, "GLfloat light_pos[ ] = {");
    drawstr(10, light_Ka[0].y, "GLfloat light_Ka[ ] = {");
    drawstr(10, light_Kd[0].y, "GLfloat light_Kd[ ] = {");
    drawstr(10, light_Ks[0].y, "GLfloat light_Ks[ ] = {");
    drawstr(light_pos[0].x+50, light_pos[0].y, ",");
    drawstr(light_pos[1].x+50, light_pos[1].y, ",");
    drawstr(light_pos[2].x+50, light_pos[2].y, ",");
    drawstr(light_pos[3].x+50, light_pos[3].y, "};");
    drawstr(light_Ka[0].x+50, light_Ka[0].y, ",");
    drawstr(light_Ka[1].x+50, light_Ka[1].y, ",");
    drawstr(light_Ka[2].x+50, light_Ka[2].y, ",");
    drawstr(light_Ka[3].x+50, light_Ka[3].y, "};");
    drawstr(light_Kd[0].x+50, light_Kd[0].y, ",");
    drawstr(light_Kd[1].x+50, light_Kd[1].y, ",");
    drawstr(light_Kd[2].x+50, light_Kd[2].y, ",");
    drawstr(light_Kd[3].x+50, light_Kd[3].y, "};");
    drawstr(light_Ks[0].x+50, light_Ks[0].y, ",");
    drawstr(light_Ks[1].x+50, light_Ks[1].y, ",");
    drawstr(light_Ks[2].x+50, light_Ks[2].y, ",");
    drawstr(light_Ks[3].x+50, light_Ks[3].y, "};");

    setfont("helvetica", 12);
    drawstr(10, light_Ks[0].y+30,
            "glLightfv(GL_LIGHT0, GL_POSITION, light_pos);");
    drawstr(10, light_Ks[1].y+50,
            "glLightfv(GL_LIGHT0, GL_AMBIENT, light_Ka);");
    drawstr(10, light_Ks[2].y+70,
            "glLightfv(GL_LIGHT0, GL_DIFFUSE, light_Kd);");
    drawstr(10, light_Ks[3].y+90,
            "glLightfv(GL_LIGHT0, GL_SPECULAR, light_Ks);");

    setfont("helvetica", 18);

    cell_draw(&light_pos[0]);
    cell_draw(&light_pos[1]);
    cell_draw(&light_pos[2]);
    cell_draw(&light_pos[3]);

    cell_draw(&light_Ka[0]);
    cell_draw(&light_Ka[1]);
    cell_draw(&light_Ka[2]);
    cell_draw(&light_Ka[3]);

    cell_draw(&light_Kd[0]);
    cell_draw(&light_Kd[1]);
    cell_draw(&light_Kd[2]);
    cell_draw(&light_Kd[3]);

    cell_draw(&light_Ks[0]);
    cell_draw(&light_Ks[1]);
    cell_draw(&light_Ks[2]);
    cell_draw(&light_Ks[3]);

    glColor3ub(255, 255, 255);
}
示例#8
0
void drawcalendarBG(void)
{
	int i;
	setcolor(RGB(255,0,0));
	setfont(60,30,"黑体");
	outtextxy(30,30,"Perpetual Calendar");

	setcolor(RGB(140,140,140));
	rectangle(50,150,540,500);
	for(i=0;i<6;i++){
		line(50,200+i*HEIT,540,200+i*HEIT);
		line(120+i*WEIT,150,120+i*WEIT,500);
	}
	
	setfillcolor(RGB(54,197,233));
	for(i=0;i<7;i++)
		fillrectangle(50+i*WEIT,150,120+i*WEIT,200);

	setcolor(RGB(255,255,0));
	setfont(30,15,"黑体");
	outtextxy(70,160,"日");
	outtextxy(140,160,"一");
	outtextxy(210,160,"二");
	outtextxy(280,160,"三");
	outtextxy(350,160,"四");
	outtextxy(420,160,"五");
	outtextxy(490,160,"六");

	setcolor(RGB(140,140,140));
	rectangle(INFX,INFY,690,390);

	for(i=0;i<5;i++)
		line(INFX,INFY+(i+1)*HEII,INFX+WEII,INFY+(i+1)*HEII);

	setfillcolor(RGB(54,197,233));
	fillrectangle(INFX,INFY,INFX+WEII,INFY+HEII);
	setcolor(RGB(255,255,0));
	setfont(30,15,"黑体");
	outtextxy(INFX+25,INFY+10,"Today");

	setcolor(RGB(255,10,10));
	setfillcolor(RGB(255,10,10));
	fillrectangle(INFX+10,INFY+HEII*6+10,INFX+20,INFY+HEII*6+20);

	setcolor(RGB(50,245,55));
	setfillcolor(RGB(50,245,55));
	fillrectangle(INFX+10,INFY+HEII*6+30,INFX+20,INFY+HEII*6+40);

	setcolor(RGB(45,45,250));
	setfillcolor(RGB(45,45,250));
	fillrectangle(INFX+10,INFY+HEII*6+50,INFX+20,INFY+HEII*6+60);

	setcolor(RGB(140,140,140));
	setfont(10,7,"");
	outtextxy(INFX+30,INFY+HEII*6+10,"YOU CHOOSE");
	outtextxy(INFX+30,INFY+HEII*6+30,"TODAY");
	outtextxy(INFX+30,INFY+HEII*6+50,"GENERAL");
}
示例#9
0
void
spotlight_display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glColor3ub(255, 255, 255);

    lighting_display();

    setfont("helvetica", 18);
    drawstr(10, spot_direction[0].y, "GLfloat spot_direction[ ] = {");
    drawstr(10, spot_exponent.y, "GLint spot_exponent =                 "
            "spot_cutoff =   ");
    drawstr(spot_direction[0].x+50, spot_direction[0].y, ",");
    drawstr(spot_direction[1].x+50, spot_direction[1].y, ",");
    drawstr(spot_direction[2].x+50, spot_direction[2].y, "};");
    drawstr(spot_exponent.x+40, spot_cutoff.y, ",");
    drawstr(spot_cutoff.x+40, spot_cutoff.y, ";");

    setfont("helvetica", 12);
    drawstr(10, spot_cutoff.y+30,
            "glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, spot_direction);");
    drawstr(10, spot_cutoff.y+50,
            "glLighti(GL_LIGHT0, GL_SPOT_EXPONENT, spot_exponent);");
    drawstr(10, spot_cutoff.y+70,
            "glLighti(GL_LIGHT0, GL_SPOT_CUTOFF, spot_cutoff);");

    setfont("helvetica", 18);
    drawstr(10, Kc.y,
            "GLfloat Kc =          , Kl =          , Kq =          ;");

    setfont("helvetica", 12);
    drawstr(10, Kq.y+30, "glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, Kc);");
    drawstr(10, Kq.y+50, "glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, Kl);");
    drawstr(10, Kq.y+70, "glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, Kq);");

    setfont("helvetica", 18);
    cell_draw(&spot_direction[0]);
    cell_draw(&spot_direction[1]);
    cell_draw(&spot_direction[2]);

    cell_draw(&spot_exponent);
    cell_draw(&spot_cutoff);

    cell_draw(&Kc);
    cell_draw(&Kl);
    cell_draw(&Kq);

    if (!selection) {
        glColor3ub(255, 255, 0);
        drawstr(10, 525,
                "Click on the arguments and move the mouse to modify values.");
    }

    glutSwapBuffers();
}
示例#10
0
文件: edit.c 项目: Antonius-git/uTox
_Bool edit_mmove(EDIT *edit, int px, int py, int width, int height, int x, int y, int dx, int dy)
{
    if(utox_window_baseline && py > utox_window_baseline - font_small_lineheight - 4 * SCALE) {
        y += py - (utox_window_baseline - font_small_lineheight - 4 * SCALE);
        py = utox_window_baseline - font_small_lineheight - 4 * SCALE;
    }

    _Bool need_redraw = 0;

    _Bool mouseover = inrect(x, y, 0, 0, width - (edit->multiline ? SCROLL_WIDTH : 0), height);
    if(mouseover) {
        cursor = CURSOR_TEXT;
    }
    if(mouseover != edit->mouseover) {
        edit->mouseover = mouseover;
        if(edit != active_edit) {
            need_redraw = 1;
        }
    }

    if(edit->multiline) {
        need_redraw |= scroll_mmove(edit->scroll, px, py, width, height, x, y, dx, dy);
        y += scroll_gety(edit->scroll, height);
    }

    if(edit == active_edit && edit_select) {
        if (edit->select_completely) {
            edit_setfocus(edit);
            need_redraw = 1;
            return need_redraw;
        }
 
        setfont(FONT_TEXT);
        edit_sel.p2 = hittextmultiline(x - 2 * SCALE, width - 4 * SCALE - (edit->multiline ? SCROLL_WIDTH : 0), y - 2 * SCALE, INT_MAX, font_small_lineheight, edit->data, edit->length, edit->multiline);

        STRING_IDX start, length;
        if(edit_sel.p2 > edit_sel.p1) {
            start = edit_sel.p1;
            length = edit_sel.p2 - edit_sel.p1;
        } else {
            start = edit_sel.p2;
            length = edit_sel.p1 - edit_sel.p2;
        }

        if(start != edit_sel.start || length != edit_sel.length) {
            edit_sel.start = start;
            edit_sel.length = length;
            need_redraw = 1;
        }
    } else if(mouseover) {
        setfont(FONT_TEXT);
        edit->mouseover_char = hittextmultiline(x - 2 * SCALE, width - 4 * SCALE - (edit->multiline ? SCROLL_WIDTH : 0), y - 2 * SCALE, INT_MAX, font_small_lineheight, edit->data, edit->length, edit->multiline);
    }

    return need_redraw;
}
示例#11
0
文件: ui.c 项目: draziw-/uTox
static void drawgroup(int UNUSED(x), int UNUSED(y), int UNUSED(w), int UNUSED(height))
{
    GROUPCHAT *g = sitem->data;

    drawalpha(BM_GROUP, LIST_RIGHT + SCALE * 5, SCALE * 5, BM_CONTACT_WIDTH, BM_CONTACT_WIDTH, LIST_MAIN);

    setcolor(C_TITLE);
    setfont(FONT_TITLE);
    drawtext(LIST_RIGHT + 30 * SCALE, 1 * SCALE, g->name, g->name_length);

    setcolor(LIST_MAIN);
    setfont(FONT_STATUS);
    drawtext(LIST_RIGHT + 30 * SCALE, 8 * SCALE, g->topic, g->topic_length);

    setcolor(GRAY(150));
    uint32_t i = 0;
    int k = LIST_RIGHT + 30 * SCALE;

    uint64_t time = get_time();

    unsigned int pos_y = 15;
    while(i < g->peers)
    {
        uint8_t *name = g->peername[i];
        if(name)
        {
            uint8_t buf[134];
            memcpy(buf, name + 1, name[0]);
            memcpy(buf + name[0], ", ", 2);

            int w = textwidth(buf, name[0] + 2);
            if (i == g->our_peer_number) {
                setcolor(C_GREEN);
            } else if (time - g->last_recv_audio[i] <= (uint64_t)1 * 1000 * 1000 * 1000) {
                setcolor(C_RED);
            } else {
                setcolor(GRAY(150));
            }

            if(k + w >= (utox_window_width - 32 * SCALE)) {
                if (pos_y == 15) {
                    pos_y += 6;
                    k = LIST_RIGHT + 30 * SCALE;
                } else {
                    drawtext(k, pos_y * SCALE, (uint8_t*)"...", 3);
                    break;
                }
            }

            drawtext(k, pos_y * SCALE, buf, name[0] + 2);

            k += w;
        }
        i++;
    }
}
示例#12
0
文件: ui.c 项目: draziw-/uTox
/* Draw an invite to be a friend window */
static void drawfriendreq(int UNUSED(x), int UNUSED(y), int UNUSED(w), int UNUSED(height))
{
    FRIENDREQ *req = sitem->data;

    setcolor(C_TITLE);
    setfont(FONT_SELF_NAME);
    drawstr(LIST_RIGHT + SCALE * 5, SCALE * 10, FRIENDREQUEST);

    setcolor(LIST_MAIN);
    setfont(FONT_STATUS);
    drawtextrange(LIST_RIGHT + 5 * SCALE, utox_window_width, 20 * SCALE, req->msg, req->length);
}
示例#13
0
文件: group.c 项目: Matsu616/uTox
static void draw_group(int x, int UNUSED(y), int UNUSED(w), int UNUSED(height)) {
    GROUPCHAT *g = flist_get_groupchat();
    if (!g) {
        LOG_ERR("Group", "Could not get selected groupchat.");
        return;
    }

    drawalpha(BM_GROUP, x + SCALE(10), SCALE(10), BM_CONTACT_WIDTH, BM_CONTACT_WIDTH, COLOR_MAIN_TEXT);

    setcolor(COLOR_MAIN_TEXT);
    setfont(FONT_TITLE);
    drawtextrange(x + SCALE(60), settings.window_width - SCALE(64), SCALE(2), g->name, g->name_length);

    setcolor(COLOR_MAIN_TEXT_SUBTEXT);
    setfont(FONT_STATUS);
    drawtextrange(x + SCALE(60), settings.window_width - SCALE(64), SCALE(16), g->topic, g->topic_length);

    uint32_t i = 0;
    unsigned k = x + SCALE(60);

    unsigned int pos_y = 15;
    while (i < g->peer_count) {
        GROUP_PEER *peer = g->peer[i];

        if (peer && peer->name_length) {
            char buf[TOX_MAX_NAME_LENGTH];
            int  text_length = snprintf((char *)buf, TOX_MAX_NAME_LENGTH, "%.*s, ", (int)peer->name_length, peer->name);

            unsigned w = textwidth(buf, text_length);
            if (peer->name_color) {
                setcolor(peer->name_color);
            } else {
                setcolor(COLOR_GROUP_PEER);
            }

            if (k + w >= (settings.window_width - SCALE(64))) {
                if (pos_y == 15) {
                    pos_y += 6;
                    k = x + SCALE(60);
                } else {
                    drawtext(k, SCALE(pos_y * 2), "...", 3);
                    break;
                }
            }

            drawtext(k, SCALE(pos_y * 2), buf, text_length);

            k += w;
        }
        i++;
    }
}
示例#14
0
文件: ui.c 项目: notadecent/uTox
static void drawadd_content(int x, int y, int width, int height)
{
    setcolor(C_TITLE);
    setfont(FONT_TEXT);
    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 5, "Tox ID");

    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 29, "Message");

    if(addfriend_status) {
        setfont(FONT_MISC);
        setcolor(C_RED);
        drawtext(LIST_RIGHT + SCALE * 5, y + SCALE * 83, addstatus[addfriend_status - 1].str, addstatus[addfriend_status - 1].length);
    }
}
示例#15
0
文件: ui.c 项目: draziw-/uTox
/* Header for friend chat window */
static void drawfriend(int UNUSED(x), int UNUSED(y), int UNUSED(w), int UNUSED(height))
{
    FRIEND *f = sitem->data;

    drawalpha(BM_CONTACT, LIST_RIGHT + SCALE * 5, SCALE * 5, BM_CONTACT_WIDTH, BM_CONTACT_WIDTH, LIST_MAIN);

    setcolor(C_TITLE);
    setfont(FONT_TITLE);
    drawtextrange(LIST_RIGHT + 30 * SCALE, utox_window_width - 92 * SCALE, 9 * SCALE, f->name, f->name_length);

    setcolor(LIST_MAIN);
    setfont(FONT_STATUS);
    drawtextrange(LIST_RIGHT + 30 * SCALE, utox_window_width - 92 * SCALE, 16 * SCALE, f->status_message, f->status_length);
}
示例#16
0
文件: ui.c 项目: draziw-/uTox
/* Draw add a friend window */
static void drawadd(int UNUSED(x), int UNUSED(y), int UNUSED(w), int height)
{
    setcolor(C_TITLE);
    setfont(FONT_SELF_NAME);
    drawstr(LIST_RIGHT + SCALE * 5, SCALE * 10, ADDFRIENDS);

    setcolor(C_TITLE);
    setfont(FONT_TEXT);
    drawstr(LIST_RIGHT + SCALE * 5, LIST_Y + SCALE * 5, TOXID);

    drawstr(LIST_RIGHT + SCALE * 5, LIST_Y + SCALE * 29, MESSAGE);

    if(addfriend_status) {
        setfont(FONT_MISC);
        setcolor(C_RED);

        STRING *str;
        switch(addfriend_status) {
        case ADDF_SENT:
            str = SPTR(REQ_SENT); break;
        case ADDF_DISCOVER:
            str = SPTR(REQ_RESOLVE); break;
        case ADDF_BADNAME:
            str = SPTR(REQ_INVALID_ID); break;
        case ADDF_NONAME:
            str = SPTR(REQ_EMPTY_ID); break;
        case ADDF_TOOLONG: //if message length is too long.
            str = SPTR(REQ_LONG_MSG); break;
        case ADDF_NOMESSAGE: //if no message (message length must be >= 1 byte).
            str = SPTR(REQ_NO_MSG); break;
        case ADDF_OWNKEY: //if user's own key.
            str = SPTR(REQ_SELF_ID); break;
        case ADDF_ALREADYSENT: //if friend request already sent or already a friend.
            str = SPTR(REQ_ALREADY_FRIENDS); break;
        case ADDF_BADCHECKSUM: //if bad checksum in address.
            str = SPTR(REQ_BAD_CHECKSUM); break;
        case ADDF_SETNEWNOSPAM: //if the friend was already there but the nospam was different.
            str = SPTR(REQ_BAD_NOSPAM); break;
        case ADDF_NOMEM: //if increasing the friend list size fails.
            str = SPTR(REQ_NO_MEMORY); break;
        case ADDF_UNKNOWN: //for unknown error.
        case ADDF_NONE: //this case must never be rendered, but if it does, assume it's an error
        default:
            str = SPTR(REQ_UNKNOWN); break;
        }

        drawtextmultiline(LIST_RIGHT + SCALE * 5, utox_window_width - BM_SBUTTON_WIDTH - 5 * SCALE, LIST_Y + SCALE * 83, 0, height, font_small_lineheight, str->str, str->length, 0xFFFF, 0, 1);
    }
}
示例#17
0
文件: ui.c 项目: notadecent/uTox
static void drawsettings_content(int x, int y, int w, int height)
{
    setcolor(C_TITLE);
    setfont(FONT_TEXT);
    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 5, "Name");

    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 29, "Status Message");

    drawtextrange(LIST_RIGHT + SCALE * 5, width - SCALE * 5, y + SCALE * 64, self.id, sizeof(self.id));

    setfont(FONT_SELF_NAME);

    drawstr(LIST_RIGHT + SCALE * 5, y + SCALE * 54, "Tox ID");

}
示例#18
0
int main()
{
	initgraph(640, 480);

	//设置视口矩形区域为(200,100) - (330, 130)
	//最后一个参数为1表示出了这个区域的图形会被裁剪
	//后面所绘画的图形的原点坐标(0,0),会映射到(200,100)
	setviewport(200, 100, 330, 130, 1);

	//画一些文字,注意文字会因区域被裁剪的效果
	setcolor(EGERGB(0x0, 0xFF, 0x0));
	setfontbkcolor(RGB(0x80, 0x00, 0x80));
	setfont(18, 0, "宋体");
	outtextxy(0, 0, "Hello EGE Graphics");

	setbkmode(TRANSPARENT);
	outtextxy(0, 20, "Hello EGE Graphics");

	//还原视口
	setviewport(0, 0, getwidth(), getheight(), 1);
	outtextxy(0, 0, "Hello EGE Graphics");

	getch();

	closegraph();
	return 0;
}
示例#19
0
文件: setup.cpp 项目: FrankHB/YEGE
int info_scene()
{
	cleardevice();
	setcolor(0xFFFFFF);
	Mira mira(640, 300);
	auto p_imagetext(newimage(440, 130));
	char infostr[] = "欢迎使用Easy Graphics Enginge (EGE) V0.3.8 ,本库是一个面向新手,或者面向快速图形程序开发的图形库,使用方便快捷,容易上手,特别适合于新手学习图形程序设计。本程序为安装程序,如果你要继续安装,请按'y'键继续";
	setcolor(0xFFFF, p_imagetext);
	setfont(18, 0, "宋体", p_imagetext);
	setbkmode(TRANSPARENT, p_imagetext);
	for(int i = 0; i < 8; ++i)
	{
		outtextrect(5, 5, 440, 280, infostr, p_imagetext);
		imagefilter_blurring(p_imagetext, 0xF0, 0x100);
	}
	setcolor(0xFF, p_imagetext);
	outtextrect(5, 5, 440, 280, infostr, p_imagetext);

	for(; kbhit() == 0; delay_fps(60))
	{
		mira.update();
		mira.render(0, 480 - 300);
		putimage(100, 50, p_imagetext);
	}
	delimage(p_imagetext);
	return getch();
}
示例#20
0
void select()
{
	initgraph(640,480);
	setbkcolor(GREEN);
    cleardevice();
	setcolor(YELLOW);
	setfont(80,0,"华文行楷");
	outtextxy(200,40,"第一关");
	outtextxy(200,200,"第二关");
	outtextxy(200,360,"第三关");
	MOUSEMSG m; 
	while(true)
	{
	  m=GetMouseMsg();
	  switch(m.uMsg)
	  {
	  case WM_LBUTTONDOWN:
	   if(m.x>=200&&m.y>=40&&m.y<=120&&m.x<=440)
		   design_cp1();
	   if(m.x>=200&&m.y>=200&&m.y<=280&&m.x<=440)
		   design_cp2();
	   if(m.x>=200&&m.y>=360&&m.y<=4400&&m.x<=440)
		   design_cp3();
	  }
	}
}
示例#21
0
文件: button.c 项目: kytvi2p/uTox
_Bool button_mmove(BUTTON *b, int UNUSED(x), int UNUSED(y), int width, int height, int mx, int my, int UNUSED(dx), int UNUSED(dy))
{
    // Ensure that font is set before calculating position and width.
    setfont(FONT_SELF_NAME);

    int real_x = 0, real_w = width;
    calculate_pos_and_width(b, &real_x, &real_w);

    _Bool mouseover = inrect(mx, my, real_x, 0, real_w, height);
    if(mouseover) {
        if(!b->disabled) {
            cursor = CURSOR_HAND;
        }

        if(maybe_i18nal_string_is_valid(&b->tooltip_text)) {
            tooltip_new(&b->tooltip_text);
        }

    }
    if(mouseover != b->mouseover) {
        b->mouseover = mouseover;
        return 1;
    }

    return 0;
}
示例#22
0
static void hint(void)
{
	BEGIN_2D_OVERLAY (gw, gh);
	
	glPushAttrib (GL_ENABLE_BIT);
	glDisable (GL_LIGHTING);
	glColor3f (0.88, 0.02, 0.89);
	setfont ("9x15",0);
	drawstr (10,gh-20, "r : switch raytrace");
	drawstr (10,gh-40, "t : show the trace");
	drawstr (10,gh-80, "Press '1' or '2' to change mode ");
	drawstr (10,gh-100, "a : AUTO ON/OFF    MODE %d", mode);
	if( _auto ) 
	{
		drawstr (10,gh-60, "+ : SPEED++ / - : SPEED--");
		glColor3f (1, 0.02, 0.02); 
		drawstr (10, gh-120, "AUTO : ON / SPEED = %.3f", omega);
	}
	else
	{
		drawstr (10,gh-60, "+ : clockwise  - : counter clockwise");
		glColor3f (.5, 0.5, 0.5); 
		drawstr (10, gh-120, "AUTO : OFF");
	}
	glPopAttrib();

	END_2D_OVERLAY();
}
示例#23
0
文件: t14.cpp 项目: jushe/xege
int main()
{
    initgraph(640, 480);

    setfont(18, 0, "宋体");

    int k = 0;

    // 这个循环,is_run判断窗口是否还在,delay_fps是延时
    // 后面讲动画的时候会详细讲解,现不要在此纠结
    for ( ; is_run(); delay_fps(60))
    {
        char str[32];
        int x, y;

        //获取鼠标坐标,此函数不等待。若鼠标移出了窗口,那么坐标值不会更新
        //特殊情况是,你按着鼠标键不放,拖出窗口,这样坐标值会依然更新
        mousepos(&x, &y);

        //格式化输出为字符串,用于后面输出
        sprintf(str, "%4d %4d", x, y);

        outtextxy(0, 0, str);
    }

    closegraph();
    return 0;
}
示例#24
0
void contextmenu_draw(void)
{
    CONTEXTMENU *b = &context_menu;
    if(!b->open) {
        return;
    }

    int x, w, active_h;
    calculate_pos_and_width(b, &x, &w);

    draw_rect_fill(x, b->y, w, b->height, COLOR_BACKGROUND_MAIN);
    active_h = b->y + b->over * CONTEXT_HEIGHT;
    draw_rect_fill(x, active_h, w, CONTEXT_HEIGHT, COLOR_ACTIVEOPTION_BACKGROUND);

    int i;
    for(i = 0; i != b->count; i++) {
        // Ensure that font is set before calculating position and width.
        STRING *name = b->ondisplay(i, b);
        setfont(FONT_TEXT);
        setcolor((active_h == b->y + i * CONTEXT_HEIGHT) ? COLOR_ACTIVEOPTION_TEXT : COLOR_MAIN_TEXT);
        drawtext(x + UTOX_SCALE(2), b->y + UTOX_SCALE(2) + i * CONTEXT_HEIGHT, name->str, name->length);
    }

    draw_rect_frame(x, b->y, w, b->height, COLOR_EDGE_ACTIVE);
}
示例#25
0
文件: setup.cpp 项目: FrankHB/YEGE
int getpath_scene()
{
	//HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio
	char strpath[MAX_PATH];
	HKEY key;
	int it;
	cleardevice();
	setfont(18, 0, "宋体");

	outtextrect(100, 30, 440, 280, "以下显示本程序所搜索到的IDE安装路径,如果有找不到的,请把本程序连同子文件夹一起复制到安装目录下,然后再在那个目录下运行本程序。例如如果你使用的是VC6的绿色版,那就可能会找不到,假如你安装在'D:\\Program Files\\Microsoft Visual Studio\\',那你只需要把本程序目录下的include, lib目录复制到'D:\\Program Files\\Microsoft Visual Studio\\VC98\\',并确认文件夹合并就可以了。\n如果你要继续安装,请按Y键继续");

	for(it = 0; ver[it][0]; ++it)
	{
		std::sprintf(strpath, "%s%s", strbasepath, ver[it]);
		if(::RegOpenKeyExA(HKEY_LOCAL_MACHINE, strpath, 0, KEY_READ, &key) == ERROR_SUCCESS)
		{
			unsigned long dwtype = REG_SZ;
			unsigned long dwsize = MAX_PATH;
			if(::RegQueryValueExA(key, "ProductDir", {}, &dwtype, (unsigned char*)(installpath[it]), &dwsize))
			{
				::RegQueryValueExA(key, "InstallDir", {}, &dwtype, (unsigned char*)(installpath[it]), &dwsize);
				strcat(installpath[it], "\\mingw");
			}
			::RegCloseKey(key);
		}
		outtextxy(100, it * 20 + 250, installpath[it]);
	}

	//::GetCurrentDirectory(MAX_PATH, installpath[it]);
	//outtextxy(100, it * 20 + 250, installpath[it]);
	return getch();
}
示例#26
0
文件: setup.cpp 项目: FrankHB/YEGE
int setup_scene()
{
	cleardevice();
	int it;
	g_output[0] = 0;
	setfont(14, 0, "宋体");
	for(it = 0; ver[it][0]; ++it)
	{
		if(installpath[it][0] == 0)
			continue;
		copyfile(".\\", installpath[it], "include", "graphics.h");
		if(it == 0)
			copyfile(".\\", installpath[it], "lib", "graphics.lib");
		if(it == 1)
			copyfile(".\\", installpath[it], "lib", "graphics05.lib");
		if(it == 2 || it == 3)
			copyfile(".\\", installpath[it], "lib", "graphics08.lib");
		if(it == 4)
			copyfile(".\\", installpath[it], "lib", "libgraphics.a");
	}
	if(g_output[0])
	{
		outtextxy(10, 10, "以下为复制记录列表,如果有发生错误的话,可能需要你手工安装");
	}
	outtextrect(10, 30, 600, 400, g_output);
	outtextxy(10, 400, "安装步骤执行完成,按任意键退出本程序");
	return getch();
}
示例#27
0
void drawcalendar(void)
{
	int i;
	int num;
	int x,y;
	DAY_NUM T_day;
	T_day=CO_day;
	T_day.day=1;
	x=T_day.week=count_week(T_day.year%100,T_day.year/100,T_day.month,T_day.day);
	y=1;
	num=month[leap_year(T_day.year)][T_day.month-1];
	setfont(40,20,"");
	for(i=0;i<num;i++,T_day.day++){
		if(T_day.year==CO_day.year&&T_day.month==CO_day.month&&T_day.day==CO_day.day)
			setfillcolor(RGB(255,40,40));
		else if(T_day.year==today.year&&T_day.month==today.month&&T_day.day==today.day)
			     setfillcolor(RGB(50,245,55));
		     else
				 setfillcolor(RGB(45,45,250));
		setcolor(RGB(140,140,140));
		fillrectangle(PCOX+x*WEIT,PCOY+y*HEIT,PCOX+x*WEIT+WEIT,PCOY+y*HEIT+HEIT);
		char str[3]={0};
		sprintf(str,"%02d",i+1);
		setcolor(RGB(255,255,255));
		outtextxy(PCOX+x*WEIT+15,PCOY+y*HEIT+5,str);
		x++;
		if(x%7==0){
			y++;
			x=0;
		}
	}
}
示例#28
0
文件: messages.c 项目: lubing521/uTox
void messages_updateheight(MESSAGES *m)
{
    MSG_DATA *data = m->data;
    if(!data) {
        return;
    }

    setfont(FONT_TEXT);

    uint32_t height = 0;
    MSG_IDX i = 0;
    while(i < data->n) {
        MESSAGE *msg = data->data[i];
        msg->height = msgheight(msg, m->width);
        height += msg->height;
        i++;
    }
    if(get_typers(m)) {
        // Add space for typing notification
        height += font_small_lineheight + MESSAGES_SPACING;
    }

    m->height = height;
    data->height = height;
    data->width = m->width;
    m->panel.content_scroll->content_height = height;
}
示例#29
0
文件: group.c 项目: Matsu616/uTox
static void draw_group_settings(int x, int y, int UNUSED(width), int UNUSED(height)) {
    setcolor(COLOR_MAIN_TEXT);
    setfont(FONT_SELF_NAME);

    drawstr(x + SCALE(10), y + MAIN_TOP + SCALE(10), GROUP_TOPIC);
    drawstr(x + SCALE(10), y + MAIN_TOP + SCALE(70), GROUP_NOTIFICATIONS);
}
示例#30
0
文件: linemod.c 项目: andreiw/polaris
/*
 * Hack to set font.
 */
void
linemod(char *s)
{
	char *tit;
	char *nam;
	int siz = 0;
	nam = s;
	for(tit = "charset="; *tit; )
		if (*tit++ != *nam++)
			return;
	s = nam;
	while(*nam) 
		switch(*nam++) {
		case ',':
		case '\n':
			*--nam = 0;
		}
	siz = atoi(++nam);
	if (siz == 0) {
		while (*--nam >= '0' && *nam <= '9')
			;
		siz = (atoi(++nam)*4)/3;
	}
	if (siz == 0)
		siz = imPcsize;
	setfont(s, siz);
}