From 1930e23f5841dc1ce2e199fe931a0b83c0119e45 Mon Sep 17 00:00:00 2001
From: maxcodehack <maxcodehack@kolibrios.org>
Date: Tue, 10 Nov 2020 18:53:57 +0000
Subject: [PATCH] Ktcc: - kos32sys1.h: Tcc dont support aliasing but support
 defines - boxlib sample: Update sample for upper fix - Rasterworks example:
 Fix 'bright' letters

git-svn-id: svn://kolibrios.org@8171 a494cfbc-eb01-0410-851d-a64ba20cac60
---
 .../ktcc/trunk/libc/include/kos32sys1.h       | 24 +++++++++++++++++-
 .../ktcc/trunk/samples/clayer/boxlib.c        | 25 ++++++++++++++++---
 .../ktcc/trunk/samples/clayer/rasterworks.c   |  2 +-
 3 files changed, 45 insertions(+), 6 deletions(-)

diff --git a/programs/develop/ktcc/trunk/libc/include/kos32sys1.h b/programs/develop/ktcc/trunk/libc/include/kos32sys1.h
index 55c3f9d5a4..3eba0d7a2f 100644
--- a/programs/develop/ktcc/trunk/libc/include/kos32sys1.h
+++ b/programs/develop/ktcc/trunk/libc/include/kos32sys1.h
@@ -757,7 +757,7 @@ void __attribute__ ((noinline)) debug_board_printf(const char *format,...)
 
 
 
-// TinyC don't support aliasing of static inline funcs
+// TinyC don't support aliasing of static inline funcs, but support #define :)
 #ifndef __TINYC__
 static inline void BeginDraw(void) __attribute__ ((alias ("begin_draw")));
 static inline void EndDraw(void) __attribute__ ((alias ("end_draw")));
@@ -785,6 +785,28 @@ static inline void* UserRealloc(void *mem, size_t size) __attribute__ ((alias ("
 static inline int *UserUnmap(void *base, size_t offset, size_t size) __attribute__ ((alias ("user_unmap")));
 static inline ufile_t LoadFile(const char *path) __attribute__ ((alias ("load_file")));
 static inline void GetProcInfo(char *info) __attribute__ ((alias ("get_proc_info")));
+#else
+	#define BeginDraw begin_draw
+	#define EndDraw end_draw
+	#define DrawWindow sys_create_window
+	#define DefineButton define_button
+	#define DrawLine draw_line
+	#define DrawBar draw_bar
+	#define DrawBitmap draw_bitmap
+	#define GetSkinHeight get_skin_height
+	#define GetMousePos get_mouse_pos
+	#define GetMouseButtons get_mouse_buttons
+	#define GetMouseWheels get_mouse_wheels
+	#define LoadCursor load_cursor
+	#define SetCursor set_cursor
+	#define DestroyCursor destroy_cursor
+	#define GetOsEvent get_os_event
+	#define UserAlloc user_alloc
+	#define UserFree user_free
+	#define UserRealloc user_realloc
+	#define UserUnmap user_unmap
+	#define LoadFile load_file
+	#define GetProcInfo get_proc_info
 #endif
 
 #ifdef __cplusplus
diff --git a/programs/develop/ktcc/trunk/samples/clayer/boxlib.c b/programs/develop/ktcc/trunk/samples/clayer/boxlib.c
index 7f12ce2979..957dd1c9c6 100644
--- a/programs/develop/ktcc/trunk/samples/clayer/boxlib.c
+++ b/programs/develop/ktcc/trunk/samples/clayer/boxlib.c
@@ -17,17 +17,18 @@
 #define WIN_W 640
 #define WIN_H 563
 
+uint32_t wheels;
 char* title = "Boxlib example";
 int win_bg_color = 0x858585;
 scrollbar scroll = {15, WIN_W - 26, WIN_H - 29, 0, 0, 2, 215, 15, 0,0x707070,0xD2CED0,0x555555,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1};
 progressbar pg = {0, 10, 10, 270, 35, 1, 0, 200, 0xB4B4B4, 0x2728FF, 0xA9A9A9};
 
 void draw_window(){
-        begin_draw(); 
-        sys_create_window(215,100,WIN_W,WIN_H,title,win_bg_color,0x34);
+        BeginDraw(); 
+        DrawWindow(215,100,WIN_W,WIN_H,title,win_bg_color,0x34);
         scrollbar_v_draw(&scroll);
         progressbar_draw(&pg);
-        end_draw();
+        EndDraw();
 }
 
 //// EVENTMASK
@@ -53,7 +54,7 @@ int main()
 	set_event_mask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
 	while(1)
 	{
-		switch(get_os_event())
+		switch(GetOsEvent())
 		{
 			case evButton:
 				if (get_os_button() == 1) exit(0);
@@ -68,6 +69,22 @@ int main()
 				break;
 			case evMouse:
 				scrollbar_v_mouse(&scroll);
+				
+				// Wheel scrolling
+				// Quite unstable
+				/*
+				int scroll_strong = 40;
+				wheels = GetMouseWheels();
+				if(wheels & 0xFFFF)
+				{
+					if((short)wheels > 0 && scroll.position < scroll.max_area - scroll_strong)
+						scroll.position += scroll_strong;
+					else if((short)wheels < 0 && scroll.position > 0)
+						scroll.position -= scroll_strong;
+					
+					scrollbar_v_draw(&scroll);
+				}
+				*/
 				pg.value = scroll.position;
 				progressbar_draw(&pg);
 				break;
diff --git a/programs/develop/ktcc/trunk/samples/clayer/rasterworks.c b/programs/develop/ktcc/trunk/samples/clayer/rasterworks.c
index ccc186cb8d..44b6d91724 100644
--- a/programs/develop/ktcc/trunk/samples/clayer/rasterworks.c
+++ b/programs/develop/ktcc/trunk/samples/clayer/rasterworks.c
@@ -25,7 +25,7 @@ int main()
                 case 1:
                     begin_draw();
                     sys_create_window(50, 50, 800, 300, "rasterworks example" ,0x34f0f0f0, 0x14);
-                    draw_bitmap(buffi, 5, 25, 768, 256);
+                    draw_bitmap(buffi+8, 5, 25, 768, 256);
                     end_draw();
                 break;