www.pudn.com > guitest.rar > guitest.c
head 1.2; access; symbols START:1.1.1.1 F[Cujitsu:1.1.1; locks; strict; comment @ * @; 1.2 date 2004.09.30.04.01.45; author floyd; state Exp; branches; next 1.1; deltatype text; permissions 644; commitid dc8415b84a31938; kopt kv; filename @guitest.c@; 1.1 date 2004.09.30.01.37.05; author floyd; state Exp; branches 1.1.1.1; next ; deltatype text; permissions 646; 1.1.1.1 date 2004.09.30.01.37.05; author floyd; state Exp; branches; next ; deltatype text; permissions 646; desc @@ 1.2 log @replace to new file @ text @/*************************************************/ /** **/ /** Reference program for SPD **/ /** GUI (Widget Manager) test **/ /** Application Reference program **/ /** Copyright (C) 2004 FMC / Fujitsu **/ /** **/ /*************************************************/ /* * $Log: guitest.c,v $ * Revision 1.5 2004/07/19 03:33:40 root * apply to color.h * * Revision 1.4 2004/07/19 01:27:52 root * append BG2312 Chinese charactor code * * Revision 1.3 2004/06/10 16:30:48 root * local bug fix * * Revision 1.2 2004/06/10 16:30:00 root * to make simple * * Revision 1.1 2004/05/29 12:36:17 root * Initial revision * * */ #include#include #include #include #include #include #include WMWidget *menu1, *menu2, *menu3; WMWidget *tip1, *tip2, *tip3 , *tip4; void make_widget_list(void); void user_func1(WMWindow *); void user_func2(WMWindow *); void user_func3(WMWindow *); WMContext wc; static int bg_flg = 0; int main(int argc, char** argv) { // setting graphic information wc.Graphic = GON; wc.GSIZE = C2_QVGA; wc.width = QVGA_W; wc.height = QVGA_H; // analyze command options if(argc > 1){ if(!strcmp(argv[1],"-ntsc")){ wc.GSIZE = C2_NTSC; wc.width = NTSC_W; wc.height = NTSC_H; }else if(!strcmp(argv[1],"-bg")){ bg_flg = 1; }else if(!strcmp(argv[1],"-h")){ printf("usage: guitest [-ntsc][-bg]\n"); printf(" -ntsc output to TV\n"); printf(" -bg draw background picture\n"); printf(" default is LCD output without back ground picture\n"); exit(-1); } if(argc > 2){ if(!strcmp(argv[2],"-ntsc")){ wc.GSIZE = C2_NTSC; wc.width = NTSC_W; wc.height = NTSC_H; }else if(!strcmp(argv[2],"-bg")){ bg_flg = 1; } } } wc.MonitorSW = MON; wc.InputDevice = KEY_DEVICE; wc.handle_interval = 10; // [ms] // initialize wivget context SA_WM_init(&wc); // make widget design make_widget_list(); // list up prepared widget SA_WM_widget_show(menu1); SA_WM_CheckWidget(); // start event watching SA_WM_main(); } void make_widget_list() { WMEvent *event1, *event2; char addr[32]; event1 = (WMEvent *)malloc(sizeof(WMEvent)); event2 = (WMEvent *)malloc(sizeof(WMEvent)); menu1 = SA_WM_window_new(WM_WINDOW_TOPLEVEL); // put "up.jpg" icon tip1 = SA_WM_pixmap_create_from_xpm(NULL, 30,200, "icon/icon.jpg"); // out "0123456789" string tip2 = SA_WM_label_new(" GUI Test ", 100,100, 160, 16); // put skin data for moving picture tip3 = SA_WM_pixmap_create_from_xpm(NULL, 0, 0, "icon/QVGAskin.jpg"); printf("tip3 VVRAM : %x\n", tip3->VVRAMaddr); sprintf(addr, "%d", tip3->VVRAMaddr); // VVRAM of this object is used for another program if(vfork() == 0){ execl("../captest/captest", "../captest/captest", addr, NULL); } if(bg_flg){ // append back ground picture tip4 = SA_WM_pixmap_create_from_xpm(NULL, 0, 0, "icon/bg.jpg"); SA_WM_alignment_set(tip4, 0, 0, wc.width, wc.height); SA_WM_container_add(menu1, tip4); } // pack all of graphic objects SA_WM_container_add(menu1, tip3); SA_WM_container_add(menu1, tip2); SA_WM_container_add(menu1, tip1); // attach SW1 event and action (call back function) to tip1 widget event1->keyval = SW1; SA_WM_signal_connect(tip1, event1, &user_func1, NULL); // attach SW2 event and action (call back function) to tip1 widget event2->keyval = SW2; SA_WM_signal_connect(tip2, event2, &user_func2, NULL); } int x = 0; int y = 0; int w = 320; int h = 240; int rate = 10; int bc = white; int fc = black; void user_func1(WMWindow *win) { printf("Event 1\n"); #ifdef GB2312 SA_WM_set_fg_color(fc); SA_WM_set_bg_color(bc); fc+=8; bc+=8; #endif SA_WM_label(tip2, "EVENT 1 OK"); x += 5; y += 5; rate -= 1; w = rate*32; h = rate*24; // change window size SA_WM_alignment_set(tip3, x, y, w, h); } void user_func2(WMWindow *win) { printf("Event 2\n"); #ifdef GB2312 SA_WM_set_fg_color(fc); SA_WM_set_bg_color(bc); fc-=8; bc-=8; #endif SA_WM_label(tip2, "EVENT 2 OK"); x -= 5; y -= 5; rate += 1; w = rate*32; h = rate*24; // change window size SA_WM_alignment_set(tip3, x, y, w,h); } @ 1.1 log @Initial revision @ text @@ 1.1.1.1 log @native SPD @ text @@