⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uibasic.c

📁 编译后直接运行的MP3播放器全部C语言源代码 一个包含FAT文件系统、系统引导 Boot、FLASH Driver等内容的
💻 C
字号:
/*************************************************************************** *             __________               __   ___.                   *   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___   *   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /   *   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <    *   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \   *                     \/            \/     \/    \/            \/  * $Id: uibasic.c,v 1.13 2003/01/20 09:39:37 kjer Exp $ * * Copyright (C) 2002 by Daniel Stenberg <daniel@haxx.se> * * All files in this archive are subject to the GNU General Public License. * See the file COPYING in the source tree root for full license agreement. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ****************************************************************************/#include <stdio.h>#include <string.h>#include <stdarg.h>#include <stdlib.h>#include <ctype.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <errno.h>#include <ctype.h>#include <time.h>#include "screenhack.h"#include "version.h"#include "lcd-x11.h"#include "lcd-playersim.h"#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)<(y)?(x):(y))#define PROGNAME "rockboxui"/* -- -- */GC draw_gc;static Colormap cmap;int display_zoom=1;Display *dpy;Window window;bool lcd_display_redraw=true;XrmOptionDescRec options [] = {  /* { "-subtractive",	".additive",	XrmoptionNoArg, "false" }, */  { "-server",		".server",	XrmoptionSepArg, 0 },  { "-help",		".help",	XrmoptionNoArg, "false" },  { 0, 0, 0, 0 }};char *progclass = "rockboxui";char *defaults [] = {  ".background:	lightgreen",  ".foreground:	black",  "*help:       false",  0};void init_window (){  XGCValues gcv;  XWindowAttributes xgwa;  XGetWindowAttributes (dpy, window, &xgwa);  cmap = xgwa.colormap;  gcv.function = GXxor;  gcv.foreground =    get_pixel_resource ("foreground", "Foreground", dpy, cmap);  draw_gc = XCreateGC (dpy, window, GCForeground, &gcv);  screen_resized(LCD_WIDTH, LCD_HEIGHT);}void screen_resized(int width, int height){  int maxx, maxy;  maxx = width;  maxy = height;  XSetForeground (dpy, draw_gc, get_pixel_resource ("background", "Background",                                                    dpy, cmap));  XFillRectangle(dpy, window, draw_gc, 0, 0, width*display_zoom, height*display_zoom);  lcd_display_redraw=true;  screen_redraw();}void drawrect(int color, int x1, int y1, int x2, int y2){  if (color==0) {    XSetForeground(dpy, draw_gc,                   get_pixel_resource("background", "Background", dpy, cmap));  }  else    XSetForeground(dpy, draw_gc,                   get_pixel_resource("foreground", "Foreground", dpy, cmap));  XFillRectangle(dpy, window, draw_gc, x1*display_zoom, y1*display_zoom,                 x2*display_zoom, y2*display_zoom);}static void help(void){  printf(PROGNAME " " ROCKBOXUI_VERSION " " __DATE__ "\n"         "usage: " PROGNAME "\n"         );}void drawline(int color, int x1, int y1, int x2, int y2){  if (color==0) {    XSetForeground(dpy, draw_gc,                   get_pixel_resource("background", "Background", dpy, cmap));  }  else    XSetForeground(dpy, draw_gc,                   get_pixel_resource("foreground", "Foreground", dpy, cmap));  XDrawLine(dpy, window, draw_gc,             (int)(x1*display_zoom),             (int)(y1*display_zoom),             (int)(x2*display_zoom),             (int)(y2*display_zoom));}void drawdot(int color, int x, int y){  if (color==0) {    XSetForeground(dpy, draw_gc,                   get_pixel_resource("background", "Background", dpy, cmap));  }  else    XSetForeground(dpy, draw_gc,                   get_pixel_resource("foreground", "Foreground", dpy, cmap));  XFillRectangle(dpy, window, draw_gc, x*display_zoom, y*display_zoom, 		 display_zoom, display_zoom);}void drawdots(int color, struct coordinate *points, int count){  if (color==0) {    XSetForeground(dpy, draw_gc,                   get_pixel_resource("background", "Background", dpy, cmap));  }  else    XSetForeground(dpy, draw_gc,                   get_pixel_resource("foreground", "Foreground", dpy, cmap));  while (count--) {    XFillRectangle(dpy, window, draw_gc, 		   points[count].x*display_zoom,		   points[count].y*display_zoom, 		   display_zoom, 		   display_zoom);  }}void drawrectangles(int color, struct rectangle *points, int count){  if (color==0) {    XSetForeground(dpy, draw_gc,                   get_pixel_resource("background", "Background", dpy, cmap));  }  else    XSetForeground(dpy, draw_gc,                   get_pixel_resource("foreground", "Foreground", dpy, cmap));  while (count--) {    XFillRectangle(dpy, window, draw_gc, 		   points[count].x*display_zoom,		   points[count].y*display_zoom, 		   points[count].width*display_zoom, 		   points[count].height*display_zoom);  }}void drawtext(int color, int x, int y, char *text){  if (color==0) {    XSetForeground(dpy, draw_gc,                   get_pixel_resource("background", "Background", dpy, cmap));  }  else    XSetForeground(dpy, draw_gc,                   get_pixel_resource("foreground", "Foreground", dpy, cmap));  XDrawString(dpy, window, draw_gc, x*display_zoom, y*display_zoom, text, strlen(text));}/* this is where the applicaton starts */extern void app_main(void);voidscreenhack (Display *the_dpy, Window the_window){  Bool helpme;  /* This doesn't work, but I don't know why (Daniel 1999-12-01) */  helpme = get_boolean_resource ("help", "Boolean");  if(helpme) {    help();  }  printf(PROGNAME " " ROCKBOXUI_VERSION " (" __DATE__ ")\n");  dpy=the_dpy;  window=the_window;  init_window();  screen_redraw();  app_main();}void screen_redraw(){  /* draw a border around the "Recorder" screen */#define X1 0#define Y1 0#define X2 (LCD_WIDTH + MARGIN_X*2)#define Y2 (LCD_HEIGHT + MARGIN_Y)  drawline(1, X1, Y1, X2, Y1);  drawline(1, X2, Y1, X2, Y2);  drawline(1, X1, Y2, X2, Y2);  drawline(1, X1, Y1, X1, Y2);  lcd_update();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -