OSDN Git Service

SimpleHTMLEditorを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_009 / chnos / sheet.c
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_009/chnos/sheet.c b/CHNOSProject/chnos/tolset_chn_000/chnos_009/chnos/sheet.c
deleted file mode 100644 (file)
index 5c8cf5e..0000000
+++ /dev/null
@@ -1,795 +0,0 @@
-\r
-#include "core.h"\r
-\r
-extern IO_MemoryControl sys_mem_ctrl;\r
-\r
-UI_Sheet_Control sys_sheet_ctrl;\r
-\r
-void Sheet_Initialise(UI_Sheet_Control *sheetctrl, IO_MemoryControl *memctrl, void *vram, uint xsize, uint ysize, uint bpp)\r
-{\r
-       uint x, y;\r
-\r
-       sheetctrl->memctrl = memctrl;\r
-\r
-       sheetctrl->mainvram = vram;\r
-       sheetctrl->map = MemoryBlock_Allocate_User(xsize * ysize * 4, sheetctrl->memctrl);\r
-       MemoryBlock_Write_Description(sheetctrl->map, "SHTCTRL_MAP");\r
-       for(y = 0; y < ysize; y++){\r
-               for(x = 0; x < xsize; x++){\r
-                       sheetctrl->map[(y * xsize) + x] = 0;\r
-               }\r
-       }\r
-       sheetctrl->mainvramsize.x = xsize;\r
-       sheetctrl->mainvramsize.y = ysize;\r
-       sheetctrl->mainvrambpp = bpp;\r
-\r
-       sheetctrl->base.vram = 0;\r
-       sheetctrl->base.position.x = 0;\r
-       sheetctrl->base.position.y = 0;\r
-       sheetctrl->base.size.x = 0;\r
-       sheetctrl->base.size.y = 0;\r
-       sheetctrl->base.bpp = 0;\r
-       sheetctrl->base.invcol = 0;\r
-       sheetctrl->base.next = 0;\r
-       sheetctrl->base.before = 0;\r
-       sheetctrl->base.Refresh = 0;\r
-       sheetctrl->base.WriteMap = 0;\r
-       sheetctrl->base.visible = false;\r
-       sheetctrl->base.mouse_movable = false;\r
-       sheetctrl->base.myctrl = sheetctrl;\r
-       sheetctrl->base.fifo = 0;\r
-       sheetctrl->base.msignal_flags = 0;\r
-       sheetctrl->base.ksignal_flags = 0;\r
-\r
-       sheetctrl->sheets = 0;\r
-       return;\r
-}\r
-\r
-UI_Sheet *Sheet_Get(UI_Sheet_Control *ctrl, uint xsize, uint ysize, uint bpp, uint invcol)\r
-{\r
-       UI_Sheet *sheet;\r
-\r
-       if(bpp == 0){\r
-               bpp = ctrl->mainvrambpp;\r
-       }\r
-\r
-       sheet = MemoryBlock_Allocate_User(sizeof(UI_Sheet), ctrl->memctrl);\r
-       MemoryBlock_Write_Description(sheet, "UI_Sheet");\r
-       sheet->vram = MemoryBlock_Allocate_User(xsize * ysize * (bpp >> 3), ctrl->memctrl);\r
-       MemoryBlock_Write_Description(sheet->vram, "UI_Sheet_VRAM");\r
-       sheet->position.x = 0;\r
-       sheet->position.y = 0;\r
-       sheet->size.x = xsize;\r
-       sheet->size.y = ysize;\r
-       sheet->bpp = bpp;\r
-       sheet->invcol = invcol;\r
-       if(sheet->invcol == 0){\r
-               sheet->WriteMap = Sheet_Write_Map_NoInvisible;\r
-       } else if(sheet->bpp == 32){\r
-               sheet->WriteMap = Sheet_Write_Map_32;\r
-       } else if(sheet->bpp == 16){\r
-               sheet->WriteMap = Sheet_Write_Map_16;\r
-               sheet->invcol = RGB_32_To_16(sheet->invcol);\r
-       } else if(sheet->bpp == 8){\r
-               sheet->WriteMap = Sheet_Write_Map_08;\r
-               sheet->invcol = RGB_32_To_08(sheet->invcol);\r
-       }\r
-       sheet->next = 0;\r
-       sheet->before = 0;\r
-\r
-       sheet->Refresh = Sheet_Refresh_Invalid;\r
-       sheet->myctrl = ctrl;\r
-\r
-       sheet->visible = false;\r
-       sheet->mouse_movable = false;\r
-       sheet->MouseEventProcedure = 0;\r
-       sheet->fifo = 0;\r
-       sheet->msignal_flags = 0;\r
-       sheet->ksignal_flags = 0;\r
-\r
-       return sheet;\r
-}\r
-\r
-uint Sheet_Show(UI_Sheet *sheet, int px, int py, uint height)\r
-{\r
-       uint i;\r
-       UI_Sheet *now;\r
-       UI_Sheet_Control *ctrl;\r
-       uint eflags;\r
-\r
-       eflags = IO_Load_EFlags();\r
-       IO_CLI();\r
-\r
-       ctrl = sheet->myctrl;\r
-\r
-       now = &ctrl->base;\r
-       for(i = 0; i <= height; i++){\r
-               if(now->next == 0){\r
-                       break;\r
-               }\r
-               if(i == height){\r
-                       break;\r
-               }\r
-               now = now->next;\r
-       }\r
-       now->next->before = sheet;\r
-       sheet->next = now->next;\r
-       sheet->before = now;\r
-       now->next = sheet;\r
-\r
-       ctrl->sheets++;\r
-       sheet->position.x = px;\r
-       sheet->position.y = py;\r
-       sheet->visible = true;\r
-\r
-       if(ctrl->mainvrambpp == 32){\r
-               if(sheet->bpp == 32){\r
-                       sheet->Refresh = Sheet_Refresh_32from32;\r
-//             } else if(sheet->bpp == 16){\r
-\r
-//             } else if(sheet->bpp == 8){\r
-\r
-               }\r
-       } else if(ctrl->mainvrambpp == 16){\r
-               if(sheet->bpp == 32){\r
-                       sheet->Refresh = Sheet_Refresh_16from32;\r
-               } else if(sheet->bpp == 16){\r
-                       sheet->Refresh = Sheet_Refresh_16from16;\r
-//             } else if(sheet->bpp == 8){\r
-\r
-               }\r
-       } else if(ctrl->mainvrambpp == 8){\r
-               if(sheet->bpp == 32){\r
-                       sheet->Refresh = Sheet_Refresh_08from32;\r
-//             } else if(sheet->bpp == 16){\r
-\r
-               } else if(sheet->bpp == 8){\r
-                       sheet->Refresh = Sheet_Refresh_08from08;\r
-               }\r
-       }\r
-       IO_Store_EFlags(eflags);\r
-\r
-       Sheet_Refresh_Map(sheet, sheet->position.x, sheet->position.y, sheet->position.x + sheet->size.x - 1, sheet->position.y + sheet->size.y - 1);\r
-       sheet->Refresh(sheet, 0, 0, sheet->size.x - 1, sheet->size.y - 1);\r
-\r
-       return i;\r
-}\r
-\r
-void Sheet_Set_Movable(UI_Sheet *sheet, bool movable)\r
-{\r
-       sheet->mouse_movable = movable;\r
-       return;\r
-}\r
-\r
-void Sheet_Set_MouseEventProcedure(UI_Sheet *sheet, void (*procedure)(UI_MouseEventArguments *e), uint flags)\r
-{\r
-       sheet->MouseEventProcedure = procedure;\r
-       sheet->msignal_flags = flags;\r
-       return;\r
-}\r
-\r
-void Sheet_Set_FIFO(UI_Sheet *sheet, DATA_FIFO *fifo, uint flags)\r
-{\r
-       sheet->fifo = fifo;\r
-       sheet->ksignal_flags = flags;\r
-       return;\r
-}\r
-\r
-void Sheet_Slide(UI_Sheet *sheet, int px, int py)\r
-{\r
-       int movex, movey;\r
-       DATA_Position2D target0, target1;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet->myctrl;\r
-       movex = px - sheet->position.x;\r
-       movey = py - sheet->position.y;\r
-\r
-       if(movex == 0 && movey == 0){   //\93®\82©\82È\82¢\r
-               return;\r
-       }\r
-       if(movey == 0){ //\89¡\82É\83X\83\89\83C\83h\82·\82é\82¾\82¯\r
-               target0.y = sheet->position.y;\r
-               target1.y = sheet->position.y + sheet->size.y - 1;\r
-               if(movex > 0){  //\89E\95û\8cü\r
-                       target0.x = sheet->position.x;\r
-                       target1.x = sheet->position.x + sheet->size.x - 1 + movex;\r
-               } else{ //\8d\95û\8cü\r
-                       target0.x = sheet->position.x + movex;\r
-                       target1.x = sheet->position.x + sheet->size.x - 1;\r
-               }\r
-       } else if(movex == 0){  //\8fc\82É\83X\83\89\83C\83h\82·\82é\82¾\82¯\r
-               target0.x = sheet->position.x;\r
-               target1.x = sheet->position.x + sheet->size.x - 1;\r
-               if(movey > 0){  //\89º\95û\8cü\r
-                       target0.y = sheet->position.y;\r
-                       target1.y = sheet->position.y + sheet->size.y - 1 + movey;\r
-               } else{ //\8fã\95û\8cü\r
-                       target0.y = sheet->position.y + movey;\r
-                       target1.y = sheet->position.y + sheet->size.y - 1;\r
-               }\r
-       } else if(movex > 0 && movey > 0){      //\89E\89º\82Ö\83X\83\89\83C\83h\r
-               target0.x = sheet->position.x;\r
-               target0.y = sheet->position.y;\r
-               target1.x = sheet->position.x + sheet->size.x - 1 + movex;\r
-               target1.y = sheet->position.y + sheet->size.y - 1 + movey;\r
-       } else if(movex > 0 && movey < 0){      //\89E\8fã\82Ö\83X\83\89\83C\83h\r
-               target0.x = sheet->position.x;\r
-               target0.y = sheet->position.y + movey;\r
-               target1.x = sheet->position.x + sheet->size.x - 1 + movex;\r
-               target1.y = sheet->position.y + sheet->size.y - 1;\r
-       } else if(movex < 0 && movey > 0){      //\8d\89º\82Ö\83X\83\89\83C\83h\r
-               target0.x = sheet->position.x + movex;\r
-               target0.y = sheet->position.y;\r
-               target1.x = sheet->position.x + sheet->size.x - 1;\r
-               target1.y = sheet->position.y + sheet->size.y - 1 + movey;\r
-       } else if(movex < 0 && movey < 0){      //\8d\8fã\82Ö\83X\83\89\83C\83h\r
-               target0.x = sheet->position.x + movex;\r
-               target0.y = sheet->position.y + movey;\r
-               target1.x = sheet->position.x + sheet->size.x - 1;\r
-               target1.y = sheet->position.y + sheet->size.y - 1;\r
-       }\r
-\r
-       sheet->visible = false;\r
-       Sheet_Refresh_Map(sheet, sheet->position.x, sheet->position.y, sheet->position.x + sheet->size.x - 1, sheet->position.y + sheet->size.y - 1);\r
-       sheet->position.x = px;\r
-       sheet->position.y = py;\r
-       sheet->visible = true;\r
-       Sheet_Refresh_Map(sheet, sheet->position.x, sheet->position.y, sheet->position.x + sheet->size.x - 1, sheet->position.y + sheet->size.y - 1);\r
-       Sheet_Refresh_All(ctrl->base.next, sheet->next, target0.x, target0.y, target1.x, target1.y);\r
-       return;\r
-}\r
-\r
-uint Sheet_UpDown(UI_Sheet *sheet, uint height)\r
-{\r
-       uint i;\r
-       UI_Sheet *now;\r
-\r
-       if(sheet->before == 0){\r
-               return 0;\r
-       }\r
-\r
-       now = &sheet->myctrl->base;\r
-\r
-       for(i = 0; now != sheet; i++){\r
-               now = now->next;\r
-       }\r
-       if(i == height){\r
-               return i;\r
-       }\r
-       Sheet_Remove(sheet);\r
-       return Sheet_Show(sheet, sheet->position.x, sheet->position.y, height - 1);\r
-}\r
-\r
-void Sheet_Remove(UI_Sheet *sheet)\r
-{\r
-       UI_Sheet_Control *ctrl;\r
-       uint eflags;\r
-\r
-       eflags = IO_Load_EFlags();\r
-       IO_CLI();\r
-\r
-       ctrl = sheet->myctrl;\r
-\r
-       ctrl->sheets--;\r
-       sheet->visible = false;\r
-       Sheet_Refresh_Map(sheet, sheet->position.x, sheet->position.y, sheet->position.x + sheet->size.x - 1, sheet->position.y + sheet->size.y - 1);\r
-       sheet->before->next = sheet->next;\r
-       sheet->next->before = sheet->before;\r
-       Sheet_Refresh_All(ctrl->base.next, sheet->next, sheet->position.x, sheet->position.y, sheet->position.x + sheet->size.x - 1, sheet->position.y + sheet->size.y - 1);\r
-       sheet->next = 0;\r
-       sheet->before = 0;\r
-\r
-       IO_Store_EFlags(eflags);\r
-       return;\r
-}\r
-\r
-void Sheet_Refresh_Map(UI_Sheet *sheet, int x0, int y0, int x1, int y1)\r
-{\r
-       UI_Sheet **before;\r
-       uint i, x, y;\r
-       DATA_Position2D target0, target1;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet->myctrl;\r
-       if(x0 >= ctrl->mainvramsize.x || y0 >= ctrl->mainvramsize.y || x1 < 0 || y1 < 0){\r
-               return;\r
-       }\r
-       if(x0 < 0){\r
-               x0 = 0;\r
-       }\r
-       if(y0 < 0){\r
-               y0 = 0;\r
-       }\r
-       if(x1 >= ctrl->mainvramsize.x){\r
-               x1 = ctrl->mainvramsize.x - 1;\r
-       }\r
-       if(y1 >= ctrl->mainvramsize.y){\r
-               y1 = ctrl->mainvramsize.y - 1;\r
-       }\r
-\r
-       before = &ctrl->base.next;\r
-       for(i = 0; i < ctrl->sheets; i++){\r
-               for(y = y0; y <= y1; y++){\r
-                       for(x = x0; x <= x1; x++){\r
-                               if(ctrl->map[(y * ctrl->mainvramsize.x) + x] == (uint)*before){\r
-                                       ctrl->map[(y * ctrl->mainvramsize.x) + x] = 0;\r
-                               }\r
-                       }\r
-               }\r
-               if(*before == sheet){\r
-                       break;\r
-               }\r
-               before = &(*before)->next;\r
-       }\r
-\r
-       i++;\r
-\r
-       for(; i > 0; i--){\r
-               target0.x = (*before)->position.x;\r
-               target0.y = (*before)->position.y;\r
-               target1.x = (*before)->position.x + (*before)->size.x - 1;\r
-               target1.y = (*before)->position.y + (*before)->size.y - 1;\r
-\r
-               if(target0.x <= x1 && target0.y <= y1 && target1.x >= x0 && target1.y >= y0 && (*before)->visible){\r
-                       if(target0.x < x0){\r
-                               target0.x = x0;\r
-                       }\r
-                       if(target0.y < y0){\r
-                               target0.y = y0;\r
-                       }\r
-                       if(target1.x > x1){\r
-                               target1.x = x1;\r
-                       }\r
-                       if(target1.y > y1){\r
-                               target1.y = y1;\r
-                       }\r
-                       (*before)->WriteMap(*before, target0.x, target0.y, target1.x, target1.y);\r
-               }\r
-               before = &(*before)->before;\r
-       }\r
-       return;\r
-}\r
-\r
-void Sheet_Write_Map_32(UI_Sheet *sheet, int x0, int y0, int x1, int y1)\r
-{\r
-       int x, y;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet->myctrl;\r
-       for(y = y0; y <= y1; y++){\r
-               for(x = x0; x <= x1; x++){\r
-                       if(ctrl->map[(y * ctrl->mainvramsize.x) + x] == 0 && ((uint *)sheet->vram)[((y - sheet->position.y) * sheet->size.x) + (x - sheet->position.x)] != sheet->invcol){\r
-                               ctrl->map[(y * ctrl->mainvramsize.x) + x] = (uint)sheet;\r
-                       }\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-void Sheet_Write_Map_16(UI_Sheet *sheet, int x0, int y0, int x1, int y1)\r
-{\r
-       int x, y;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet->myctrl;\r
-       for(y = y0; y <= y1; y++){\r
-               for(x = x0; x <= x1; x++){\r
-                       if(ctrl->map[(y * ctrl->mainvramsize.x) + x] == 0 && ((ushort *)sheet->vram)[((y - sheet->position.y) * sheet->size.x) + (x - sheet->position.x)] != (ushort)sheet->invcol){\r
-                               ctrl->map[(y * ctrl->mainvramsize.x) + x] = (uint)sheet;\r
-                       }\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-void Sheet_Write_Map_08(UI_Sheet *sheet, int x0, int y0, int x1, int y1)\r
-{\r
-       int x, y;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet->myctrl;\r
-       for(y = y0; y <= y1; y++){\r
-               for(x = x0; x <= x1; x++){\r
-                       if(ctrl->map[(y * ctrl->mainvramsize.x) + x] == 0 && ((uchar *)sheet->vram)[((y - sheet->position.y) * sheet->size.x) + (x - sheet->position.x)] != (uchar)sheet->invcol){\r
-                               ctrl->map[(y * ctrl->mainvramsize.x) + x] = (uint)sheet;\r
-                       }\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-void Sheet_Write_Map_NoInvisible(UI_Sheet *sheet, int x0, int y0, int x1, int y1)\r
-{\r
-       int x, y;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet->myctrl;\r
-       for(y = y0; y <= y1; y++){\r
-               for(x = x0; x <= x1; x++){\r
-                       if(ctrl->map[(y * ctrl->mainvramsize.x) + x] == 0){\r
-                               ctrl->map[(y * ctrl->mainvramsize.x) + x] = (uint)sheet;\r
-                       }\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-void Sheet_Refresh_All(UI_Sheet *sheet0, UI_Sheet *sheet1, int x0, int y0, int x1, int y1)\r
-{\r
-       UI_Sheet *now;\r
-       uint i;\r
-       DATA_Position2D target0, target1;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet0->myctrl;\r
-       now = sheet0;\r
-       for(i = 0; i < ctrl->sheets; i++){\r
-               target0.x = now->position.x;\r
-               target0.y = now->position.y;\r
-               target1.x = now->position.x + now->size.x - 1;\r
-               target1.y = now->position.y + now->size.y - 1;\r
-\r
-               if(target0.x <= x1 && target0.y <= y1 && target1.x >= x0 && target1.y >= y0 && now->visible){\r
-                       if(target0.x < x0){\r
-                               target0.x = x0;\r
-                       }\r
-                       if(target0.y < y0){\r
-                               target0.y = y0;\r
-                       }\r
-                       if(target1.x > x1){\r
-                               target1.x = x1;\r
-                       }\r
-                       if(target1.y > y1){\r
-                               target1.y = y1;\r
-                       }\r
-                       now->Refresh(now, target0.x - now->position.x, target0.y - now->position.y, target1.x - now->position.x, target1.y - now->position.y);\r
-               }\r
-               if(now->next == sheet1 || now->next == 0){\r
-                       break;\r
-               }\r
-               now = now->next;\r
-       }\r
-       return;\r
-}\r
-\r
-void Sheet_Refresh_32from32(UI_Sheet *sheet, int px0, int py0, int px1, int py1)\r
-{\r
-       int x, y;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet->myctrl;\r
-       px0 = px0 + sheet->position.x;\r
-       py0 = py0 + sheet->position.y;\r
-       px1 = px1 + sheet->position.x;\r
-       py1 = py1 + sheet->position.y;\r
-\r
-       if(px0 >= ctrl->mainvramsize.x || py0 >= ctrl->mainvramsize.y || px1 < 0 || py1 < 0){\r
-               return;\r
-       }\r
-       if(px0 < 0){\r
-               px0 = 0;\r
-       }\r
-       if(py0 < 0){\r
-               py0 = 0;\r
-       }\r
-       if(px1 >= ctrl->mainvramsize.x){\r
-               px1 = ctrl->mainvramsize.x - 1;\r
-       }\r
-       if(py1 >= ctrl->mainvramsize.y){\r
-               py1 = ctrl->mainvramsize.y - 1;\r
-       }\r
-\r
-       for(y = py0; y <= py1; y++){\r
-               for(x = px0; x <= px1; x++){\r
-                       if(ctrl->map[(y * ctrl->mainvramsize.x) + x] == (uint)sheet){\r
-                               ((uint *)ctrl->mainvram)[(y * ctrl->mainvramsize.x) + x] = ((uint *)sheet->vram)[((y - sheet->position.y) * sheet->size.x) + (x - sheet->position.x)];\r
-                       }\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-void Sheet_Refresh_16from32(UI_Sheet *sheet, int px0, int py0, int px1, int py1)\r
-{\r
-       int x, y;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet->myctrl;\r
-       px0 = px0 + sheet->position.x;\r
-       py0 = py0 + sheet->position.y;\r
-       px1 = px1 + sheet->position.x;\r
-       py1 = py1 + sheet->position.y;\r
-\r
-       if(px0 >= ctrl->mainvramsize.x || py0 >= ctrl->mainvramsize.y || px1 < 0 || py1 < 0){\r
-               return;\r
-       }\r
-       if(px0 < 0){\r
-               px0 = 0;\r
-       }\r
-       if(py0 < 0){\r
-               py0 = 0;\r
-       }\r
-       if(px1 >= ctrl->mainvramsize.x){\r
-               px1 = ctrl->mainvramsize.x - 1;\r
-       }\r
-       if(py1 >= ctrl->mainvramsize.y){\r
-               py1 = ctrl->mainvramsize.y - 1;\r
-       }\r
-\r
-       for(y = py0; y <= py1; y++){\r
-               for(x = px0; x <= px1; x++){\r
-                       if(ctrl->map[(y * ctrl->mainvramsize.x) + x] == (uint)sheet){\r
-                               ((ushort *)ctrl->mainvram)[(y * ctrl->mainvramsize.x) + x] = RGB_32_To_16(((uint *)sheet->vram)[((y - sheet->position.y) * sheet->size.x) + (x - sheet->position.x)]);\r
-                       }\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-void Sheet_Refresh_08from32(UI_Sheet *sheet, int px0, int py0, int px1, int py1)\r
-{\r
-       int x, y;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet->myctrl;\r
-       px0 = px0 + sheet->position.x;\r
-       py0 = py0 + sheet->position.y;\r
-       px1 = px1 + sheet->position.x;\r
-       py1 = py1 + sheet->position.y;\r
-\r
-       if(px0 >= ctrl->mainvramsize.x || py0 >= ctrl->mainvramsize.y || px1 < 0 || py1 < 0){\r
-               return;\r
-       }\r
-       if(px0 < 0){\r
-               px0 = 0;\r
-       }\r
-       if(py0 < 0){\r
-               py0 = 0;\r
-       }\r
-       if(px1 >= ctrl->mainvramsize.x){\r
-               px1 = ctrl->mainvramsize.x - 1;\r
-       }\r
-       if(py1 >= ctrl->mainvramsize.y){\r
-               py1 = ctrl->mainvramsize.y - 1;\r
-       }\r
-\r
-       for(y = py0; y <= py1; y++){\r
-               for(x = px0; x <= px1; x++){\r
-                       if(ctrl->map[(y * ctrl->mainvramsize.x) + x] == (uint)sheet){\r
-                               ((uchar *)ctrl->mainvram)[(y * ctrl->mainvramsize.x) + x] = RGB_32_To_08_xy(((uint *)sheet->vram)[((y - sheet->position.y) * sheet->size.x) + (x - sheet->position.x)], x, y);\r
-                       }\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-void Sheet_Refresh_16from16(UI_Sheet *sheet, int px0, int py0, int px1, int py1)\r
-{\r
-       int x, y;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet->myctrl;\r
-       px0 = px0 + sheet->position.x;\r
-       py0 = py0 + sheet->position.y;\r
-       px1 = px1 + sheet->position.x;\r
-       py1 = py1 + sheet->position.y;\r
-\r
-       if(px0 >= ctrl->mainvramsize.x || py0 >= ctrl->mainvramsize.y || px1 < 0 || py1 < 0){\r
-               return;\r
-       }\r
-       if(px0 < 0){\r
-               px0 = 0;\r
-       }\r
-       if(py0 < 0){\r
-               py0 = 0;\r
-       }\r
-       if(px1 >= ctrl->mainvramsize.x){\r
-               px1 = ctrl->mainvramsize.x - 1;\r
-       }\r
-       if(py1 >= ctrl->mainvramsize.y){\r
-               py1 = ctrl->mainvramsize.y - 1;\r
-       }\r
-\r
-       for(y = py0; y <= py1; y++){\r
-               for(x = px0; x <= px1; x++){\r
-                       if(ctrl->map[(y * ctrl->mainvramsize.x) + x] == (uint)sheet){\r
-                               ((ushort *)ctrl->mainvram)[(y * ctrl->mainvramsize.x) + x] = ((ushort *)sheet->vram)[((y - sheet->position.y) * sheet->size.x) + (x - sheet->position.x)];\r
-                       }\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-void Sheet_Refresh_08from08(UI_Sheet *sheet, int px0, int py0, int px1, int py1)\r
-{\r
-       int x, y;\r
-       UI_Sheet_Control *ctrl;\r
-\r
-       ctrl = sheet->myctrl;\r
-       px0 = px0 + sheet->position.x;\r
-       py0 = py0 + sheet->position.y;\r
-       px1 = px1 + sheet->position.x;\r
-       py1 = py1 + sheet->position.y;\r
-\r
-       if(px0 >= ctrl->mainvramsize.x || py0 >= ctrl->mainvramsize.y || px1 < 0 || py1 < 0){\r
-               return;\r
-       }\r
-       if(px0 < 0){\r
-               px0 = 0;\r
-       }\r
-       if(py0 < 0){\r
-               py0 = 0;\r
-       }\r
-       if(px1 >= ctrl->mainvramsize.x){\r
-               px1 = ctrl->mainvramsize.x - 1;\r
-       }\r
-       if(py1 >= ctrl->mainvramsize.y){\r
-               py1 = ctrl->mainvramsize.y - 1;\r
-       }\r
-\r
-       for(y = py0; y <= py1; y++){\r
-               for(x = px0; x <= px1; x++){\r
-                       if(ctrl->map[(y * ctrl->mainvramsize.x) + x] == (uint)sheet){\r
-                               ((uchar *)ctrl->mainvram)[(y * ctrl->mainvramsize.x) + x] = ((uchar *)sheet->vram)[((y - sheet->position.y) * sheet->size.x) + (x - sheet->position.x)];\r
-                       }\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-void Sheet_Refresh_Invalid(UI_Sheet *sheet, int px0, int py0, int px1, int py1)\r
-{\r
-       return;\r
-}\r
-\r
-void Sheet_Draw_Put_String(UI_Sheet *sheet, uint x, uint y, uint c, const uchar *s)\r
-{\r
-       uint i;\r
-\r
-       for(i = 0; s[i] != 0x00; i++){\r
-\r
-       }\r
-\r
-       if(y > sheet->size.y - 16){\r
-               return;\r
-       }\r
-\r
-       if(sheet->bpp == 32){\r
-               Draw_Put_String_32(sheet->vram, sheet->size.x, x, y, c, s);\r
-       } else if(sheet->bpp == 16){\r
-               Draw_Put_String_16(sheet->vram, sheet->size.x, x, y, c, s);\r
-       } else if(sheet->bpp == 8){\r
-               Draw_Put_String_08(sheet->vram, sheet->size.x, x, y, c, s);\r
-       }\r
-\r
-       sheet->Refresh(sheet, x, y, x + (i * 8), y + 16);\r
-       return;\r
-}\r
-\r
-void Sheet_Draw_Put_String_With_BackColor(UI_Sheet *sheet, uint x, uint y, uint c, uint bc, const uchar *s)\r
-{\r
-       uint i;\r
-\r
-       for(i = 0; s[i] != 0x00; i++){\r
-\r
-       }\r
-\r
-       Sheet_Draw_Fill_Rectangle(sheet, bc, x, y, x + (i * 8) - 1,  y + 16 - 1);\r
-\r
-       if(y > sheet->size.y - 16){\r
-               return;\r
-       }\r
-\r
-       if(sheet->bpp == 32){\r
-               Draw_Put_String_32(sheet->vram, sheet->size.x, x, y, c, s);\r
-       } else if(sheet->bpp == 16){\r
-               Draw_Put_String_16(sheet->vram, sheet->size.x, x, y, c, s);\r
-       } else if(sheet->bpp == 8){\r
-               Draw_Put_String_08(sheet->vram, sheet->size.x, x, y, c, s);\r
-       }\r
-\r
-       sheet->Refresh(sheet, x, y, x + (i * 8), y + 16);\r
-       return;\r
-}\r
-\r
-void Sheet_Draw_Fill_Rectangle(UI_Sheet *sheet, uint c, uint x0, uint y0, uint x1, uint y1)\r
-{\r
-       if(x1 >= sheet->size.x || y1 >= sheet->size.y){\r
-               return;\r
-       }\r
-\r
-       if(sheet->bpp == 32){\r
-               Draw_Fill_Rectangle_32(sheet->vram, sheet->size.x, c, x0, y0, x1, y1);\r
-       } else if(sheet->bpp == 16){\r
-               Draw_Fill_Rectangle_16(sheet->vram, sheet->size.x, c, x0, y0, x1, y1);\r
-       } else if(sheet->bpp == 8){\r
-               Draw_Fill_Rectangle_08(sheet->vram, sheet->size.x, c, x0, y0, x1, y1);\r
-       }\r
-       sheet->Refresh(sheet, x0, y0, x1, y1);\r
-       return;\r
-}\r
-\r
-void Sheet_Draw_Fill_Rectangle_Gradation_Vertical(UI_Sheet *sheet, uint c0, uint c1, uint x0, uint y0, uint x1, uint y1)\r
-{\r
-       int nowcol, nowcol_R, nowcol_G, nowcol_B, add_R, add_G, add_B;\r
-       uint x, y;\r
-\r
-       if(x1 >= sheet->size.x || y1 >= sheet->size.y){\r
-               return;\r
-       }\r
-\r
-       if(y1 == y0){\r
-               return;\r
-       }\r
-\r
-       c0 &= 0x00ffffff;\r
-       c1 &= 0x00ffffff;\r
-\r
-       add_R = (((int)((c1 & 0x00ff0000) >> 16) << 10) - ((int)((c0 & 0x00ff0000) >> 16) << 10)) / (int)(y1 - y0);\r
-       add_G = (((int)((c1 & 0x0000ff00) >> 8) << 10) - ((int)((c0 & 0x0000ff00) >> 8) << 10)) / (int)(y1 - y0);\r
-       add_B = (((int)(c1 & 0x000000ff) << 10) - ((int)(c0 & 0x000000ff) << 10)) / (int)(y1 - y0);\r
-\r
-       nowcol_R = ((c0 & 0x00ff0000) >> 16) << 10;\r
-       nowcol_G = ((c0 & 0x0000ff00) >> 8) << 10;\r
-       nowcol_B = (c0 & 0x000000ff) << 10;\r
-\r
-       for(y = y0; y <= y1; y++){\r
-               nowcol = ((nowcol_R >> 10) << 16) | ((nowcol_G >> 10) << 8) | (nowcol_B >> 10);\r
-               for(x = x0; x <= x1; x++){\r
-                       Sheet_Draw_Point(sheet, (uint)nowcol, x, y);\r
-               }\r
-               nowcol_R += add_R;\r
-               nowcol_G += add_G;\r
-               nowcol_B += add_B;\r
-       }\r
-\r
-       return;\r
-}\r
-void Sheet_Draw_Point(UI_Sheet *sheet, uint c, uint x, uint y)\r
-{\r
-       if(sheet->bpp == 32){\r
-               ((uint *)sheet->vram)[y * sheet->size.x + x] = c;\r
-       } else if(sheet->bpp == 16){\r
-               c = RGB_32_To_16(c);\r
-               ((ushort *)sheet->vram)[y * sheet->size.x + x] = (ushort)c;\r
-       } else if(sheet->bpp == 8){\r
-//             c = RGB_32_To_08(c);\r
-               c = RGB_32_To_08_xy(c, x, y);\r
-               ((uchar *)sheet->vram)[y * sheet->size.x + x] = (uchar)c;\r
-       }\r
-       sheet->Refresh(sheet, x, y, x, y);\r
-       return;\r
-}\r
-\r
-void System_Sheet_Initialise(void *vram, uint xsize, uint ysize, uint bpp)\r
-{\r
-       Sheet_Initialise(&sys_sheet_ctrl, &sys_mem_ctrl, vram, xsize, ysize, bpp);\r
-       return;\r
-}\r
-\r
-UI_Sheet *System_Sheet_Get(uint xsize, uint ysize, uint bpp, uint invcol)\r
-{\r
-       return Sheet_Get(&sys_sheet_ctrl, xsize, ysize, bpp, invcol);\r
-}\r
-\r
-UI_Sheet *Sheet_Get_From_Position(UI_Sheet_Control *ctrl, int x, int y)\r
-{\r
-       if(x < 0 || y < 0 || x > ctrl->mainvramsize.x || y > ctrl->mainvramsize.y){\r
-               return 0;\r
-       }\r
-       return (UI_Sheet *)ctrl->map[(y * ctrl->mainvramsize.x) + x];\r
-}\r
-\r
-uint Sheet_Get_Top_Of_Height(UI_Sheet_Control *ctrl)\r
-{\r
-       if(ctrl->sheets < 1){\r
-               return 0;\r
-       }\r
-       return ctrl->sheets - 1;\r
-}\r
-\r
-uint System_Sheet_Get_Top_Of_Height(void)\r
-{\r
-       return Sheet_Get_Top_Of_Height(&sys_sheet_ctrl);\r
-}\r