00001 /******************* 00002 *Project: 80X86 32BIT MULTI TASKING OPERATING SYSTEM 00003 *Description:graphic user interface library 00004 * 00005 *File: gui.c 00006 *Author: Book Chen 00007 *Date: 2010.01.01 00008 ******************** 00009 */ 00010 #include "includes.h" 00011 00012 const U8 GuiName[]="GUI"; 00013 00014 GUI_CONTROL GuiCtrl; 00015 00016 void GuiInit(void){ 00017 OsResourceAdd(&GuiCtrl.GuiResource,&GuiName,OS_RESOURCE_GUI); 00018 } 00019 00020 void GuiCharPrint(U8 CharValue){ 00021 if(OsResourceAllocate(&GuiCtrl.GuiResource,1000)==OS_FALSE) return; 00022 CgaCharPut(CharValue); 00023 CgaCursorSet(); 00024 OsResourceRelease(&GuiCtrl.GuiResource); 00025 } 00026 00027 bool GuiStringPrint(U8* pString){ 00028 if(OsResourceAllocate(&GuiCtrl.GuiResource,1000)==OS_FALSE) return OS_FALSE; 00029 while(*pString!=0){ 00030 if(*pString==0x0a) CgaChangeLine(); 00031 else if(*pString==0x0d); // 0x0a 0x0d is change line ,too. 00032 else CgaCharPut(*pString); 00033 pString++; 00034 } 00035 CgaCursorSet(); 00036 OsResourceRelease(&GuiCtrl.GuiResource); 00037 return OS_TRUE; 00038 } 00039 00040 void GuiBackSpace(void){ 00041 if(OsResourceAllocate(&GuiCtrl.GuiResource,1000)==OS_FALSE) return; 00042 CgaBackSpace(); 00043 CgaCursorSet(); 00044 OsResourceRelease(&GuiCtrl.GuiResource); 00045 } 00046 00047 void GuiU8Print(U8 Number){ 00048 U8 i; 00049 00050 if(OsResourceAllocate(&GuiCtrl.GuiResource,1000)==OS_FALSE) return; 00051 i=(Number&0xf0)>>4; 00052 if(i<10) i=i+0x30; 00053 else i=i+0x41-10; 00054 CgaCharPut(i); 00055 i=Number&0x0f; 00056 if(i<10) i=i+0x30; 00057 else i=i+0x41-10; 00058 CgaCharPut(i); 00059 OsResourceRelease(&GuiCtrl.GuiResource); 00060 } 00061 00062 void GuiU16Print(U16 Number){ 00063 U16 i; 00064 00065 if(OsResourceAllocate(&GuiCtrl.GuiResource,1000)==OS_FALSE) return; 00066 i=(Number&0xf000)>>12; 00067 if(i<10) i=i+0x30; 00068 else i=i+0x41-10; 00069 CgaCharPut(i); 00070 i=(Number&0x0f00)>>8; 00071 if(i<10) i=i+0x30; 00072 else i=i+0x41-10; 00073 CgaCharPut(i); 00074 i=(Number&0x00f0)>>4; 00075 if(i<10) i=i+0x30; 00076 else i=i+0x41-10; 00077 CgaCharPut(i); 00078 i=Number&0x000f; 00079 if(i<10) i=i+0x30; 00080 else i=i+0x41-10; 00081 CgaCharPut(i); 00082 OsResourceRelease(&GuiCtrl.GuiResource); 00083 } 00084 00085 void GuiU32Print(U32 Number){ 00086 U32 i; 00087 00088 if(OsResourceAllocate(&GuiCtrl.GuiResource,1000)==OS_FALSE) return; 00089 i=(Number&0xf0000000)>>28; 00090 if(i<10) i=i+0x30; 00091 else i=i+0x41-10; 00092 CgaCharPut(i); 00093 i=(Number&0x0f000000)>>24; 00094 if(i<10) i=i+0x30; 00095 else i=i+0x41-10; 00096 CgaCharPut(i); 00097 i=(Number&0x00f00000)>>20; 00098 if(i<10) i=i+0x30; 00099 else i=i+0x41-10; 00100 CgaCharPut(i); 00101 i=(Number&0x000f0000)>>16; 00102 if(i<10) i=i+0x30; 00103 else i=i+0x41-10; 00104 CgaCharPut(i); 00105 i=(Number&0x0000f000)>>12; 00106 if(i<10) i=i+0x30; 00107 else i=i+0x41-10; 00108 CgaCharPut(i); 00109 i=(Number&0x00000f00)>>8; 00110 if(i<10) i=i+0x30; 00111 else i=i+0x41-10; 00112 CgaCharPut(i); 00113 i=(Number&0x000000f0)>>4; 00114 if(i<10) i=i+0x30; 00115 else i=i+0x41-10; 00116 CgaCharPut(i); 00117 i=Number&0x0000000f; 00118 if(i<10) i=i+0x30; 00119 else i=i+0x41-10; 00120 CgaCharPut(i); 00121 OsResourceRelease(&GuiCtrl.GuiResource); 00122 }
1.5.9