X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin4_src%2FUI%2Fmain.c;h=8577a26b6b820789c662865433b19b5971026ca8;hb=7da746abd4b6296322f6bf8b228d678098e1fd24;hp=3b94448f817f0d0654de352b67a874bdc3d04934;hpb=74ccd1fff633643363e5c03785dba4ed9b44351e;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin4_src/UI/main.c b/Usermode/Applications/axwin4_src/UI/main.c index 3b94448f..8577a26b 100644 --- a/Usermode/Applications/axwin4_src/UI/main.c +++ b/Usermode/Applications/axwin4_src/UI/main.c @@ -7,27 +7,63 @@ */ #include #include +#include "include/common.h" +#include "include/taskbar.h" + +// === PROTOTYPES === +tAxWin4_Window *CreateBGWin(int w, int h); + +// === GLOABLS === +unsigned int giScreenWidth = 640; +unsigned int giScreenHeight = 480; // === CODE === int main(int argc, const char *argv[]) { assert( AxWin4_Connect("ipcpipe:///Devices/ipcpipe/axwin4") ); - tAxWin4_Window *bgwin = AxWin4_CreateWindow("background"); + AxWin4_GetScreenDimensions(0, &giScreenWidth, &giScreenHeight); - AxWin4_MoveWindow(bgwin, 0,0); - AxWin4_ResizeWindow(bgwin, 640,480); - //AxWin4_SetWindowFlags(bgwin, AXWIN4_WNDFLAG_NODECORATE|AXWIN4_WNDFLAG_KEEPBELOW); + tAxWin4_Window *bgwin = CreateBGWin(giScreenWidth, giScreenHeight); + Taskbar_Create(); - // Load image - //char *image = malloc(640*480*4); - //AxWin4_DrawBitmap(bgwin, 0, 0, 640, 480, image); - _SysDebug("Beginning queue"); - while( AxWin4_WaitEventQueue(0) ) ; _SysDebug("Clean exit"); return 0; } + +tAxWin4_Window *CreateBGWin(int w, int h) +{ + tAxWin4_Window *bgwin = AxWin4_CreateWindow("background"); + AxWin4_MoveWindow(bgwin, 0,0); + AxWin4_ResizeWindow(bgwin, w,h); + AxWin4_SetWindowFlags(bgwin, AXWIN4_WNDFLAG_NODECORATE|AXWIN4_WNDFLAG_KEEPBELOW); + + // Load background image + uint32_t *buf = AxWin4_GetWindowBuffer(bgwin); + if( buf ) + { + for( size_t y = 0; y < h; y ++ ) + { + for(size_t x = 0; x < w; x ++ ) + { + uint8_t r = y * 256 / h; + uint8_t g = 0; + uint8_t b = x * 256 / w; + buf[y*w+x] = (r << 16) | (g << 8) | b; + } + } + } + else + { + AxWin4_FillRect(bgwin, 0, 0, w, h, 0x0000CC); + } + //AxWin4_DamageRect(bgwin, 0, 0, w, h); + AxWin4_ShowWindow(bgwin, true); + + return bgwin; +} +