Backup - Adding design for AxWin3 to git
[tpg/acess2.git] / Usermode / Applications / axwin0_src / desktop.c
1 /*\r
2 AcessOS Window Manager\r
3 Desktop Window\r
4 */\r
5 #include "axwin.h"\r
6 #include "desktop_font.h"\r
7 #include <string.h>\r
8 \r
9 #define DEBUG   0\r
10 \r
11 #define FGC     0xFFFFFFFF\r
12 #define BGC     0xFF000000\r
13 \r
14 // === GLOBALS ===\r
15  void*  gHwnd = NULL;\r
16  int    gW = 640;\r
17  int    gH = 480;\r
18  \r
19 // === PROTOTYPES ===\r
20 void    Desktop_Init();\r
21  int    Desktop_WndProc(void *handle, int message, int arg1, int arg2);\r
22 void    Desktop_PrintAt(BITMAP *bmp, int x, int y, char *text);\r
23 \r
24 // === CODE ===\r
25 void Desktop_Init()\r
26 {\r
27         gHwnd = WM_CreateWindow(0, 0, -1, -1, Desktop_WndProc, WNDFLAG_NOBORDER|WNDFLAG_SHOW);\r
28         if(gHwnd == 0)\r
29         {\r
30                 //write(giConsoleFP, 32, "Unable to create desktop window\n");\r
31                 return;\r
32         }\r
33         WM_SetTitle(gHwnd, "Desktop");\r
34 }\r
35 \r
36 int     Desktop_WndProc(void *handle, int message, int arg1, int arg2)\r
37 {\r
38         switch(message)\r
39         {\r
40         case WM_REPAINT:\r
41                 {\r
42                 BITMAP  *bmp = (BITMAP*)arg1;\r
43                 memset( bmp->data, BGC, bmp->width*bmp->height*4 );\r
44                 Desktop_PrintAt( bmp, 0, 0, "CAB@1337!" );\r
45                 }\r
46                 break;\r
47                 \r
48         default:\r
49                 return 0;\r
50         }\r
51         return 1;       // Handled\r
52 }\r
53 \r
54 void Desktop_PrintAt(BITMAP *bmp, int x, int y, char *text)\r
55 {\r
56         int j,k,w;\r
57         Uint32  *buf;\r
58         \r
59         if( bmp == NULL || text == NULL )\r
60            return;\r
61 \r
62         buf = bmp->data;\r
63         w = bmp->width;\r
64         buf += y*w+x;\r
65         while(*text)\r
66         {\r
67                 for(j=0;j<9;j++)\r
68                 {\r
69                         int     c = cFONT_ASCII[(int)*text][j];\r
70                         for(k=0;k<8;k++)\r
71                         {\r
72                                 if(c&(1<<(7-k)))        buf[j*w+k] = FGC;\r
73                                 else                            buf[j*w+k] = BGC;\r
74                         }\r
75                         buf[j*w+8] = BGC;\r
76                 }\r
77                 buf += 9;\r
78                 text++;\r
79         }\r
80 }\r

UCC git Repository :: git.ucc.asn.au