forked from KolibriOS/kolibrios
clean code
git-svn-id: svn://kolibrios.org@8133 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
b6a2e048a3
commit
43c1011cb3
@ -1,5 +1,5 @@
|
|||||||
#ifndef __MENUET_H_INCLUDED_
|
#ifndef __KOLIBRI_H_INCLUDED_
|
||||||
#define __MENUET_H_INCLUDED_
|
#define __KOLIBRI_H_INCLUDED_
|
||||||
|
|
||||||
#include <kos_lib.h>
|
#include <kos_lib.h>
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ namespace Kolibri // All kolibri functions, types and data are nested in the (
|
|||||||
const char *Title;
|
const char *Title;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct TStartData // This structure is used only for MenuetOnStart function.
|
struct TStartData // This structure is used only for KolibriOnStart function.
|
||||||
{
|
{
|
||||||
unsigned short Left, Width, Top, Height; // Initial window rectangle.
|
unsigned short Left, Width, Top, Height; // Initial window rectangle.
|
||||||
TWindowData WinData;
|
TWindowData WinData;
|
||||||
@ -59,7 +59,7 @@ namespace Kolibri // All kolibri functions, types and data are nested in the (
|
|||||||
void ExitThread(); // Exit from the current thread
|
void ExitThread(); // Exit from the current thread
|
||||||
void ExitThread(TThreadData thread_data);
|
void ExitThread(TThreadData thread_data);
|
||||||
void ReturnMessageLoop(); // Return to the message loop of the thread. Exit from the thread
|
void ReturnMessageLoop(); // Return to the message loop of the thread. Exit from the thread
|
||||||
void ReturnMessageLoop(TThreadData thread_data); //_ if it is called from (MenuetOnStart).
|
void ReturnMessageLoop(TThreadData thread_data); //_ if it is called from (KolibriOnStart).
|
||||||
|
|
||||||
void Delay(unsigned int time); // Delay the execution of the program during (time) hundredth seconds.
|
void Delay(unsigned int time); // Delay the execution of the program during (time) hundredth seconds.
|
||||||
unsigned int Clock(); // Return the time from starting of the system to this moment in hundredth of seconds.
|
unsigned int Clock(); // Return the time from starting of the system to this moment in hundredth of seconds.
|
||||||
@ -133,17 +133,18 @@ namespace Kolibri // All kolibri functions, types and data are nested in the (
|
|||||||
//_ the same size as the main thread if (stack_size) less that 4096. Set the beginning
|
//_ the same size as the main thread if (stack_size) less that 4096. Set the beginning
|
||||||
//_ of the stack if (stack_end) is zero or (stack_size) is not zero, in this case stack
|
//_ of the stack if (stack_end) is zero or (stack_size) is not zero, in this case stack
|
||||||
//_ will be deleted automaticaly from dynamic memory at the finish of the thread.
|
//_ will be deleted automaticaly from dynamic memory at the finish of the thread.
|
||||||
|
void DrawText(short x, short y, int color, const char* string);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function, defined outside.
|
// Function, defined outside.
|
||||||
|
|
||||||
bool MenuetOnStart(Kolibri::TStartData &me_start, Kolibri::TThreadData thread_data);
|
bool KolibriOnStart(Kolibri::TStartData &me_start, Kolibri::TThreadData thread_data);
|
||||||
// Window will be created iff return value is true.
|
// Window will be created iff return value is true.
|
||||||
bool MenuetOnClose(Kolibri::TThreadData thread_data); // Window will be closed iff return value is true.
|
bool KolibriOnClose(Kolibri::TThreadData thread_data); // Window will be closed iff return value is true.
|
||||||
int MenuetOnIdle(Kolibri::TThreadData thread_data); // Return the time to wait next message.
|
int KolibriOnIdle(Kolibri::TThreadData thread_data); // Return the time to wait next message.
|
||||||
void MenuetOnSize(int window_rect[/* 4 */], Kolibri::TThreadData thread_data); // When the window is resized.
|
void KolibriOnSize(int window_rect[/* 4 */], Kolibri::TThreadData thread_data); // When the window is resized.
|
||||||
void MenuetOnKeyPress(Kolibri::TThreadData thread_data); // When user press a key.
|
void KolibriOnKeyPress(Kolibri::TThreadData thread_data); // When user press a key.
|
||||||
void MenuetOnMouse(Kolibri::TThreadData thread_data); // When user move a mouse.
|
void KolibriOnMouse(Kolibri::TThreadData thread_data); // When user move a mouse.
|
||||||
|
|
||||||
#ifdef __MENUET__
|
#ifdef __MENUET__
|
||||||
|
|
||||||
@ -258,18 +259,18 @@ namespace Kolibri
|
|||||||
|
|
||||||
void _GetStartData(TStartData &start_data, TThreadData thread_data)
|
void _GetStartData(TStartData &start_data, TThreadData thread_data)
|
||||||
{
|
{
|
||||||
start_data.Left = (unsigned short)((unsigned long)thread_data[MENUET_THREAD_DATA_X] >> 16);
|
start_data.Left = (unsigned short)((unsigned long)thread_data[KOLIBRI_THREAD_DATA_X] >> 16);
|
||||||
start_data.Width = (unsigned short)((unsigned long)thread_data[MENUET_THREAD_DATA_X]);
|
start_data.Width = (unsigned short)((unsigned long)thread_data[KOLIBRI_THREAD_DATA_X]);
|
||||||
start_data.Top = (unsigned short)((unsigned long)thread_data[MENUET_THREAD_DATA_Y] >> 16);
|
start_data.Top = (unsigned short)((unsigned long)thread_data[KOLIBRI_THREAD_DATA_Y] >> 16);
|
||||||
start_data.Height = (unsigned short)((unsigned long)thread_data[MENUET_THREAD_DATA_Y]);
|
start_data.Height = (unsigned short)((unsigned long)thread_data[KOLIBRI_THREAD_DATA_Y]);
|
||||||
GetWindowData(start_data.WinData, thread_data);
|
GetWindowData(start_data.WinData, thread_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _SetStartData(const TStartData &start_data, TThreadData thread_data)
|
void _SetStartData(const TStartData &start_data, TThreadData thread_data)
|
||||||
{
|
{
|
||||||
(unsigned long&)thread_data[MENUET_THREAD_DATA_X] =
|
(unsigned long&)thread_data[KOLIBRI_THREAD_DATA_X] =
|
||||||
((unsigned int)start_data.Left << 16) | start_data.Width;
|
((unsigned int)start_data.Left << 16) | start_data.Width;
|
||||||
(unsigned long&)thread_data[MENUET_THREAD_DATA_Y] =
|
(unsigned long&)thread_data[KOLIBRI_THREAD_DATA_Y] =
|
||||||
((unsigned int)start_data.Top << 16) | start_data.Height;
|
((unsigned int)start_data.Top << 16) | start_data.Height;
|
||||||
SetWindowData(start_data.WinData, thread_data);
|
SetWindowData(start_data.WinData, thread_data);
|
||||||
}
|
}
|
||||||
@ -373,9 +374,9 @@ namespace Kolibri
|
|||||||
Lock(&_ThreadMutex);
|
Lock(&_ThreadMutex);
|
||||||
if (_ExitProcessNow) ExitProcess();
|
if (_ExitProcessNow) ExitProcess();
|
||||||
thread_table_item = &_ThreadTable[_HashByte(pid)];
|
thread_table_item = &_ThreadTable[_HashByte(pid)];
|
||||||
thread_data[MENUET_THREAD_DATA_NEXT] = (void*)*thread_table_item;
|
thread_data[KOLIBRI_THREAD_DATA_NEXT] = (void*)*thread_table_item;
|
||||||
(unsigned int&)thread_data[MENUET_THREAD_DATA_PID] = pid;
|
(unsigned int&)thread_data[KOLIBRI_THREAD_DATA_PID] = pid;
|
||||||
*(_TThreadDataTemplate*)(thread_data + MENUET_THREAD_DATA_FLAG) = _ThreadDataTemplate;
|
*(_TThreadDataTemplate*)(thread_data + KOLIBRI_THREAD_DATA_FLAG) = _ThreadDataTemplate;
|
||||||
*thread_table_item = thread_data;
|
*thread_table_item = thread_data;
|
||||||
UnLock(&_ThreadMutex);
|
UnLock(&_ThreadMutex);
|
||||||
if (_ExitProcessNow) ExitProcess();
|
if (_ExitProcessNow) ExitProcess();
|
||||||
@ -383,10 +384,10 @@ namespace Kolibri
|
|||||||
TStartData start_data;
|
TStartData start_data;
|
||||||
_GetStartData(start_data, thread_data);
|
_GetStartData(start_data, thread_data);
|
||||||
_ApplyCommonColors(start_data.WinData);
|
_ApplyCommonColors(start_data.WinData);
|
||||||
(unsigned int&)thread_data[MENUET_THREAD_DATA_FLAG] |= 0x40000000;
|
(unsigned int&)thread_data[KOLIBRI_THREAD_DATA_FLAG] |= 0x40000000;
|
||||||
thread_data[MENUET_THREAD_DATA_TITLE] = (void*)(&start_data);
|
thread_data[KOLIBRI_THREAD_DATA_TITLE] = (void*)(&start_data);
|
||||||
if (!MenuetOnStart(start_data, thread_data)) return false;
|
if (!KolibriOnStart(start_data, thread_data)) return false;
|
||||||
(unsigned int&)thread_data[MENUET_THREAD_DATA_FLAG] &= ~0x40000000;
|
(unsigned int&)thread_data[KOLIBRI_THREAD_DATA_FLAG] &= ~0x40000000;
|
||||||
_SetStartData(start_data, thread_data);
|
_SetStartData(start_data, thread_data);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -402,10 +403,10 @@ namespace Kolibri
|
|||||||
{
|
{
|
||||||
if (*thread_table_item == thread_data)
|
if (*thread_table_item == thread_data)
|
||||||
{
|
{
|
||||||
*thread_table_item = (TThreadData)thread_data[MENUET_THREAD_DATA_NEXT];
|
*thread_table_item = (TThreadData)thread_data[KOLIBRI_THREAD_DATA_NEXT];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
thread_table_item = (TThreadData*)(*thread_table_item + MENUET_THREAD_DATA_NEXT);
|
thread_table_item = (TThreadData*)(*thread_table_item + KOLIBRI_THREAD_DATA_NEXT);
|
||||||
}
|
}
|
||||||
UnLock(&_ThreadMutex);
|
UnLock(&_ThreadMutex);
|
||||||
if (_ExitProcessNow) ExitProcess();
|
if (_ExitProcessNow) ExitProcess();
|
||||||
@ -413,59 +414,59 @@ namespace Kolibri
|
|||||||
|
|
||||||
void GetWindowData(TWindowData &win_data, TThreadData thread_data)
|
void GetWindowData(TWindowData &win_data, TThreadData thread_data)
|
||||||
{
|
{
|
||||||
if ((unsigned int)thread_data[MENUET_THREAD_DATA_FLAG] & 0x40000000)
|
if ((unsigned int)thread_data[KOLIBRI_THREAD_DATA_FLAG] & 0x40000000)
|
||||||
{
|
{
|
||||||
win_data = ((TStartData*)thread_data[MENUET_THREAD_DATA_TITLE])->WinData;
|
win_data = ((TStartData*)thread_data[KOLIBRI_THREAD_DATA_TITLE])->WinData;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
win_data.WindowType = (unsigned short)((unsigned int)thread_data[MENUET_THREAD_DATA_C_WINDOW] >> 24);
|
win_data.WindowType = (unsigned short)((unsigned int)thread_data[KOLIBRI_THREAD_DATA_C_WINDOW] >> 24);
|
||||||
win_data.HeaderType = (unsigned short)((unsigned int)thread_data[MENUET_THREAD_DATA_C_HEADER] >> 24);
|
win_data.HeaderType = (unsigned short)((unsigned int)thread_data[KOLIBRI_THREAD_DATA_C_HEADER] >> 24);
|
||||||
win_data.WindowColor = (unsigned int)thread_data[MENUET_THREAD_DATA_C_WINDOW] & 0xFFFFFF;
|
win_data.WindowColor = (unsigned int)thread_data[KOLIBRI_THREAD_DATA_C_WINDOW] & 0xFFFFFF;
|
||||||
win_data.HeaderColor = (unsigned int)thread_data[MENUET_THREAD_DATA_C_HEADER] & 0xFFFFFF;
|
win_data.HeaderColor = (unsigned int)thread_data[KOLIBRI_THREAD_DATA_C_HEADER] & 0xFFFFFF;
|
||||||
win_data.BorderColor = (unsigned int)thread_data[MENUET_THREAD_DATA_C_BORDER] & 0xFFFFFF;
|
win_data.BorderColor = (unsigned int)thread_data[KOLIBRI_THREAD_DATA_C_BORDER] & 0xFFFFFF;
|
||||||
win_data.TitleColor = (unsigned int)thread_data[MENUET_THREAD_DATA_C_TITLE] & 0xFFFFFF;
|
win_data.TitleColor = (unsigned int)thread_data[KOLIBRI_THREAD_DATA_C_TITLE] & 0xFFFFFF;
|
||||||
win_data.Title = (char*)thread_data[MENUET_THREAD_DATA_TITLE];
|
win_data.Title = (char*)thread_data[KOLIBRI_THREAD_DATA_TITLE];
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetWindowData(const TWindowData &win_data, TThreadData thread_data)
|
void SetWindowData(const TWindowData &win_data, TThreadData thread_data)
|
||||||
{
|
{
|
||||||
if ((unsigned int)thread_data[MENUET_THREAD_DATA_FLAG] & 0x40000000)
|
if ((unsigned int)thread_data[KOLIBRI_THREAD_DATA_FLAG] & 0x40000000)
|
||||||
{
|
{
|
||||||
((TStartData*)thread_data[MENUET_THREAD_DATA_TITLE])->WinData = win_data;
|
((TStartData*)thread_data[KOLIBRI_THREAD_DATA_TITLE])->WinData = win_data;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
(unsigned int&)thread_data[MENUET_THREAD_DATA_C_WINDOW] =
|
(unsigned int&)thread_data[KOLIBRI_THREAD_DATA_C_WINDOW] =
|
||||||
((unsigned int)win_data.WindowType << 24) | (win_data.WindowColor & 0xFFFFFF);
|
((unsigned int)win_data.WindowType << 24) | (win_data.WindowColor & 0xFFFFFF);
|
||||||
(unsigned int&)thread_data[MENUET_THREAD_DATA_C_HEADER] =
|
(unsigned int&)thread_data[KOLIBRI_THREAD_DATA_C_HEADER] =
|
||||||
((unsigned int)win_data.HeaderType << 24) | (win_data.HeaderColor & 0xFFFFFF);
|
((unsigned int)win_data.HeaderType << 24) | (win_data.HeaderColor & 0xFFFFFF);
|
||||||
(unsigned int&)thread_data[MENUET_THREAD_DATA_C_BORDER] = win_data.BorderColor & 0xFFFFFF;
|
(unsigned int&)thread_data[KOLIBRI_THREAD_DATA_C_BORDER] = win_data.BorderColor & 0xFFFFFF;
|
||||||
(unsigned int&)thread_data[MENUET_THREAD_DATA_C_TITLE] = win_data.TitleColor & 0xFFFFFF;
|
(unsigned int&)thread_data[KOLIBRI_THREAD_DATA_C_TITLE] = win_data.TitleColor & 0xFFFFFF;
|
||||||
thread_data[MENUET_THREAD_DATA_TITLE] = (void*)win_data.Title;
|
thread_data[KOLIBRI_THREAD_DATA_TITLE] = (void*)win_data.Title;
|
||||||
Invalidate(1, thread_data);
|
Invalidate(1, thread_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CloseWindow(TThreadData thread_data)
|
void CloseWindow(TThreadData thread_data)
|
||||||
{
|
{
|
||||||
(unsigned int&)thread_data[MENUET_THREAD_DATA_FLAG] |= 0x80000000;
|
(unsigned int&)thread_data[KOLIBRI_THREAD_DATA_FLAG] |= 0x80000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Invalidate(int frame, TThreadData thread_data)
|
void Invalidate(int frame, TThreadData thread_data)
|
||||||
{
|
{
|
||||||
if (frame < 0) return;
|
if (frame < 0) return;
|
||||||
(unsigned int&)thread_data[MENUET_THREAD_DATA_FLAG] |= (frame ? 3 : 1);
|
(unsigned int&)thread_data[KOLIBRI_THREAD_DATA_FLAG] |= (frame ? 3 : 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* GetPicture(unsigned short &width, unsigned short &height, TThreadData thread_data)
|
void* GetPicture(unsigned short &width, unsigned short &height, TThreadData thread_data)
|
||||||
{
|
{
|
||||||
width = (unsigned short)((unsigned int)thread_data[MENUET_THREAD_DATA_SZ_PICT] >> 16);
|
width = (unsigned short)((unsigned int)thread_data[KOLIBRI_THREAD_DATA_SZ_PICT] >> 16);
|
||||||
height = (unsigned short)((unsigned int)thread_data[MENUET_THREAD_DATA_SZ_PICT]);
|
height = (unsigned short)((unsigned int)thread_data[KOLIBRI_THREAD_DATA_SZ_PICT]);
|
||||||
return (void*)thread_data[MENUET_THREAD_DATA_PICTURE];
|
return (void*)thread_data[KOLIBRI_THREAD_DATA_PICTURE];
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetPicture(void *picture, unsigned short width, unsigned short height, TThreadData thread_data)
|
void SetPicture(void *picture, unsigned short width, unsigned short height, TThreadData thread_data)
|
||||||
{
|
{
|
||||||
thread_data[MENUET_THREAD_DATA_PICTURE] = (void*)picture;
|
thread_data[KOLIBRI_THREAD_DATA_PICTURE] = (void*)picture;
|
||||||
(unsigned int&)thread_data[MENUET_THREAD_DATA_SZ_PICT] =
|
(unsigned int&)thread_data[KOLIBRI_THREAD_DATA_SZ_PICT] =
|
||||||
(width == 0 || height == 0) ? 0 : (((unsigned int)width << 16) | height);
|
(width == 0 || height == 0) ? 0 : (((unsigned int)width << 16) | height);
|
||||||
Invalidate(0, thread_data);
|
Invalidate(0, thread_data);
|
||||||
}
|
}
|
||||||
@ -474,9 +475,9 @@ namespace Kolibri
|
|||||||
|
|
||||||
void GetBorderHeader(unsigned short &border_size, unsigned short &header_size, TThreadData thread_data)
|
void GetBorderHeader(unsigned short &border_size, unsigned short &header_size, TThreadData thread_data)
|
||||||
{
|
{
|
||||||
int win_type = ((unsigned int)thread_data[MENUET_THREAD_DATA_FLAG] & 0x40000000) ?
|
int win_type = ((unsigned int)thread_data[KOLIBRI_THREAD_DATA_FLAG] & 0x40000000) ?
|
||||||
((TStartData*)thread_data[MENUET_THREAD_DATA_TITLE])->WinData.WindowType :
|
((TStartData*)thread_data[KOLIBRI_THREAD_DATA_TITLE])->WinData.WindowType :
|
||||||
((unsigned int)thread_data[MENUET_THREAD_DATA_C_WINDOW] >> 24);
|
((unsigned int)thread_data[KOLIBRI_THREAD_DATA_C_WINDOW] >> 24);
|
||||||
border_size = MENUET_BORDER_SIZE;
|
border_size = MENUET_BORDER_SIZE;
|
||||||
header_size = short(((win_type & 15) == 3) ? _GetSkinHeader() : MENUET_HEADER_SIZE);
|
header_size = short(((win_type & 15) == 3) ? _GetSkinHeader() : MENUET_HEADER_SIZE);
|
||||||
}
|
}
|
||||||
@ -533,5 +534,5 @@ namespace Kolibri
|
|||||||
|
|
||||||
#endif // else: def __MENUET__
|
#endif // else: def __MENUET__
|
||||||
|
|
||||||
#endif // ndef __MENUET_H_INCLUDED_
|
#endif // ndef __KOLIBRI_H_INCLUDED_
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#ifndef __MENUET_FILE_H_INCLUDED_
|
#ifndef __KOLIBRI_FILE_H_INCLUDED_
|
||||||
#define __MENUET_FILE_H_INCLUDED_
|
#define __KOLIBRI_FILE_H_INCLUDED_
|
||||||
|
|
||||||
#include <kolibri.h>
|
#include <kolibri.h>
|
||||||
#include <kos_heap.h>
|
#include <kos_heap.h>
|
||||||
@ -67,7 +67,7 @@ namespace Kolibri
|
|||||||
if (!name || !name[0]) return 0;
|
if (!name || !name[0]) return 0;
|
||||||
unsigned int name_len = StrLen(name) + 1;
|
unsigned int name_len = StrLen(name) + 1;
|
||||||
unsigned int data_len = (_FileDataStruct::PosName + name_len + 3) & ~3;
|
unsigned int data_len = (_FileDataStruct::PosName + name_len + 3) & ~3;
|
||||||
buffer_length = (buffer_length / MENUET_FILE_BLOCK_SIZE) * MENUET_FILE_BLOCK_SIZE;
|
buffer_length = (buffer_length / KOLIBRI_FILE_BLOCK_SIZE) * KOLIBRI_FILE_BLOCK_SIZE;
|
||||||
if (buffer_length) data_len += buffer_length + 2*sizeof(unsigned int);
|
if (buffer_length) data_len += buffer_length + 2*sizeof(unsigned int);
|
||||||
TFileData file = (TFileData)Alloc(_FileDataStruct::PosName + data_len);
|
TFileData file = (TFileData)Alloc(_FileDataStruct::PosName + data_len);
|
||||||
if (!file) return 0;
|
if (!file) return 0;
|
||||||
@ -119,7 +119,7 @@ namespace Kolibri
|
|||||||
if (file_data->buffer) buffer = file_data->buffer;
|
if (file_data->buffer) buffer = file_data->buffer;
|
||||||
else if (temp_mem)
|
else if (temp_mem)
|
||||||
{
|
{
|
||||||
buffer = (unsigned int*)((char*)temp_mem + MENUET_FILE_BLOCK_SIZE);
|
buffer = (unsigned int*)((char*)temp_mem + KOLIBRI_FILE_BLOCK_SIZE);
|
||||||
}
|
}
|
||||||
else return 0;
|
else return 0;
|
||||||
if (!buffer[1]) return 0;
|
if (!buffer[1]) return 0;
|
||||||
@ -142,18 +142,18 @@ namespace Kolibri
|
|||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
unsigned int len0, len1;
|
unsigned int len0, len1;
|
||||||
size /= MENUET_FILE_BLOCK_SIZE;
|
size /= KOLIBRI_FILE_BLOCK_SIZE;
|
||||||
if (!file_data || !mem || size <= 0) return -1;
|
if (!file_data || !mem || size <= 0) return -1;
|
||||||
file_data->access_param[0] = 0;
|
file_data->access_param[0] = 0;
|
||||||
file_data->access_param[1] = (file_data->position / MENUET_FILE_BLOCK_SIZE) * MENUET_FILE_BLOCK_SIZE;
|
file_data->access_param[1] = (file_data->position / KOLIBRI_FILE_BLOCK_SIZE) * KOLIBRI_FILE_BLOCK_SIZE;
|
||||||
file_data->access_param[2] = 0;
|
file_data->access_param[2] = 0;
|
||||||
file_data->access_param[3] = size * MENUET_FILE_BLOCK_SIZE;
|
file_data->access_param[3] = size * KOLIBRI_FILE_BLOCK_SIZE;
|
||||||
file_data->access_param[4] = (unsigned int)mem;
|
file_data->access_param[4] = (unsigned int)mem;
|
||||||
res = _FileAccess(file_data->access_param);
|
res = _FileAccess(file_data->access_param);
|
||||||
if (res != 0 && res != 6) return (res & 255) - 1024;
|
if (res != 0 && res != 6) return (res & 255) - 1024;
|
||||||
if (file_data->length <= file_data->position) return 0;
|
if (file_data->length <= file_data->position) return 0;
|
||||||
len0 = file_data->length - file_data->position;
|
len0 = file_data->length - file_data->position;
|
||||||
len1 = size * MENUET_FILE_BLOCK_SIZE - (file_data->position % MENUET_FILE_BLOCK_SIZE);
|
len1 = size * KOLIBRI_FILE_BLOCK_SIZE - (file_data->position % KOLIBRI_FILE_BLOCK_SIZE);
|
||||||
return (len0 <= len1) ? len0 : len1;
|
return (len0 <= len1) ? len0 : len1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,16 +167,16 @@ namespace Kolibri
|
|||||||
{
|
{
|
||||||
if (!temp_mem)
|
if (!temp_mem)
|
||||||
{
|
{
|
||||||
temp_mem = Alloc(MENUET_FILE_BLOCK_SIZE + 2*sizeof(unsigned int));
|
temp_mem = Alloc(KOLIBRI_FILE_BLOCK_SIZE + 2*sizeof(unsigned int));
|
||||||
if (!temp_mem) return -10;
|
if (!temp_mem) return -10;
|
||||||
}
|
}
|
||||||
buffer = (unsigned int*)((char*)temp_mem + MENUET_FILE_BLOCK_SIZE);
|
buffer = (unsigned int*)((char*)temp_mem + KOLIBRI_FILE_BLOCK_SIZE);
|
||||||
buffer[0] = MENUET_FILE_BLOCK_SIZE;
|
buffer[0] = KOLIBRI_FILE_BLOCK_SIZE;
|
||||||
}
|
}
|
||||||
buffer[1] = buffer[0];
|
buffer[1] = buffer[0];
|
||||||
res = _FileReadSystem(file_data, (char*)buffer - buffer[1], buffer[1]);
|
res = _FileReadSystem(file_data, (char*)buffer - buffer[1], buffer[1]);
|
||||||
if (res < 0) buffer[1] = 0;
|
if (res < 0) buffer[1] = 0;
|
||||||
else buffer[1] -= file_data->position % MENUET_FILE_BLOCK_SIZE;
|
else buffer[1] -= file_data->position % KOLIBRI_FILE_BLOCK_SIZE;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -200,7 +200,7 @@ namespace Kolibri
|
|||||||
read_len = res;
|
read_len = res;
|
||||||
mem = (char*)mem + res;
|
mem = (char*)mem + res;
|
||||||
size -= res;
|
size -= res;
|
||||||
tlen = file_data->position % MENUET_FILE_BLOCK_SIZE;
|
tlen = file_data->position % KOLIBRI_FILE_BLOCK_SIZE;
|
||||||
if (tlen)
|
if (tlen)
|
||||||
{
|
{
|
||||||
res = _FileBufferSystem(file_data, temp_mem);
|
res = _FileBufferSystem(file_data, temp_mem);
|
||||||
@ -220,7 +220,7 @@ namespace Kolibri
|
|||||||
mem = (char*)mem + res;
|
mem = (char*)mem + res;
|
||||||
size -= res;
|
size -= res;
|
||||||
}
|
}
|
||||||
if (size >= (file_data->buffer ? file_data->buffer[0] : MENUET_FILE_BLOCK_SIZE))
|
if (size >= (file_data->buffer ? file_data->buffer[0] : KOLIBRI_FILE_BLOCK_SIZE))
|
||||||
{
|
{
|
||||||
res = _FileReadSystem(file_data, mem, size);
|
res = _FileReadSystem(file_data, mem, size);
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
@ -230,7 +230,7 @@ namespace Kolibri
|
|||||||
}
|
}
|
||||||
file_data->position += res;
|
file_data->position += res;
|
||||||
read_len += res;
|
read_len += res;
|
||||||
if (res < (size / MENUET_FILE_BLOCK_SIZE) * MENUET_FILE_BLOCK_SIZE)
|
if (res < (size / KOLIBRI_FILE_BLOCK_SIZE) * KOLIBRI_FILE_BLOCK_SIZE)
|
||||||
{
|
{
|
||||||
if (temp_mem) Free(temp_mem);
|
if (temp_mem) Free(temp_mem);
|
||||||
return read_len;
|
return read_len;
|
||||||
@ -274,5 +274,5 @@ namespace Kolibri
|
|||||||
|
|
||||||
#endif // else: def __MENUET__
|
#endif // else: def __MENUET__
|
||||||
|
|
||||||
#endif // ndef __MENUET_FILE_H_INCLUDED_
|
#endif // ndef __KOLIBRI_FILE_H_INCLUDED_
|
||||||
|
|
||||||
|
@ -4,48 +4,48 @@ MENUET_BORDER_SIZE = 4;
|
|||||||
MENUET_HEADER_SIZE = 20;
|
MENUET_HEADER_SIZE = 20;
|
||||||
|
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_USER = 0; // Thread data begin from the user dword
|
KOLIBRI_THREAD_DATA_USER = 0; // Thread data begin from the user dword
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_ST_BEGIN = 1; // Stack beginning follows after the user dword
|
KOLIBRI_THREAD_DATA_ST_BEGIN = 1; // Stack beginning follows after the user dword
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_NEXT = 2;
|
KOLIBRI_THREAD_DATA_NEXT = 2;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_PID = 3;
|
KOLIBRI_THREAD_DATA_PID = 3;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_FLAG = 4;
|
KOLIBRI_THREAD_DATA_FLAG = 4;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_X = 5;
|
KOLIBRI_THREAD_DATA_X = 5;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_Y = 6;
|
KOLIBRI_THREAD_DATA_Y = 6;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_C_WINDOW = 7;
|
KOLIBRI_THREAD_DATA_C_WINDOW = 7;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_C_HEADER = 8;
|
KOLIBRI_THREAD_DATA_C_HEADER = 8;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_C_BORDER = 9;
|
KOLIBRI_THREAD_DATA_C_BORDER = 9;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_C_TITLE = 10;
|
KOLIBRI_THREAD_DATA_C_TITLE = 10;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_TITLE = 11;
|
KOLIBRI_THREAD_DATA_TITLE = 11;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_PICTURE = 12;
|
KOLIBRI_THREAD_DATA_PICTURE = 12;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_SZ_PICT = 13;
|
KOLIBRI_THREAD_DATA_SZ_PICT = 13;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_LAST_SX = 14;
|
KOLIBRI_THREAD_DATA_LAST_SX = 14;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_LAST_SY = 15;
|
KOLIBRI_THREAD_DATA_LAST_SY = 15;
|
||||||
;const int
|
;const int
|
||||||
MENUET_THREAD_DATA_LEN = 16;
|
KOLIBRI_THREAD_DATA_LEN = 16;
|
||||||
|
|
||||||
;const int
|
;const int
|
||||||
MENUET_MUTEX_MAX_TIME_WAIT = 20;
|
MENUET_MUTEX_MAX_TIME_WAIT = 20;
|
||||||
|
|
||||||
;const int
|
;const int
|
||||||
MENUET_FILE_BLOCK_SIZE = 512;
|
KOLIBRI_FILE_BLOCK_SIZE = 512;
|
||||||
|
|
||||||
;const int
|
;const int
|
||||||
MENUET_FILE_MEMORY_OS_NEED = 4096;
|
KOLIBRI_FILE_MEMORY_OS_NEED = 4096;
|
||||||
|
|
||||||
;/***
|
;/***
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ proc @Kolibri@ThreadMain$qpvt1
|
|||||||
xchg ebx,[esp+4]
|
xchg ebx,[esp+4]
|
||||||
xchg ebp,[esp+8]
|
xchg ebp,[esp+8]
|
||||||
push esi edi
|
push esi edi
|
||||||
sub esp,MENUET_THREAD_DATA_LEN*4
|
sub esp,KOLIBRI_THREAD_DATA_LEN*4
|
||||||
mov [esp],ebx
|
mov [esp],ebx
|
||||||
mov [esp+4],ebp
|
mov [esp+4],ebp
|
||||||
mov eax,40
|
mov eax,40
|
||||||
@ -165,21 +165,21 @@ end if
|
|||||||
jnz .main_test_close_first
|
jnz .main_test_close_first
|
||||||
jmp .main_end
|
jmp .main_end
|
||||||
.main_close_first:
|
.main_close_first:
|
||||||
btr dword [esp+MENUET_THREAD_DATA_FLAG*4],31
|
btr dword [esp+KOLIBRI_THREAD_DATA_FLAG*4],31
|
||||||
push esp
|
push esp
|
||||||
call @@MenuetOnClose$qppv
|
call @@KolibriOnClose$qppv
|
||||||
pop ecx
|
pop ecx
|
||||||
test al,al
|
test al,al
|
||||||
jnz .main_end
|
jnz .main_end
|
||||||
.main_test_close_first:
|
.main_test_close_first:
|
||||||
cmp dword [esp+MENUET_THREAD_DATA_FLAG*4],0
|
cmp dword [esp+KOLIBRI_THREAD_DATA_FLAG*4],0
|
||||||
jl .main_close_first
|
jl .main_close_first
|
||||||
push esp
|
push esp
|
||||||
push dword 1
|
push dword 1
|
||||||
call @Kolibri@Redraw$qippv
|
call @Kolibri@Redraw$qippv
|
||||||
add esp,8
|
add esp,8
|
||||||
.main_paint_msg:
|
.main_paint_msg:
|
||||||
or dword [esp+MENUET_THREAD_DATA_FLAG*4],3
|
or dword [esp+KOLIBRI_THREAD_DATA_FLAG*4],3
|
||||||
sub esp,1024
|
sub esp,1024
|
||||||
mov eax,9
|
mov eax,9
|
||||||
mov ebx,esp
|
mov ebx,esp
|
||||||
@ -190,13 +190,13 @@ end if
|
|||||||
mov ecx,[esp+42]
|
mov ecx,[esp+42]
|
||||||
mov edx,[esp+46]
|
mov edx,[esp+46]
|
||||||
add esp,1024
|
add esp,1024
|
||||||
cmp ecx,[esp+MENUET_THREAD_DATA_LAST_SX*4]
|
cmp ecx,[esp+KOLIBRI_THREAD_DATA_LAST_SX*4]
|
||||||
jnz .main_size
|
jnz .main_size
|
||||||
cmp edx,[esp+MENUET_THREAD_DATA_LAST_SY*4]
|
cmp edx,[esp+KOLIBRI_THREAD_DATA_LAST_SY*4]
|
||||||
jz .main_paint
|
jz .main_paint
|
||||||
.main_size:
|
.main_size:
|
||||||
mov [esp+MENUET_THREAD_DATA_LAST_SX*4],ecx
|
mov [esp+KOLIBRI_THREAD_DATA_LAST_SX*4],ecx
|
||||||
mov [esp+MENUET_THREAD_DATA_LAST_SY*4],edx
|
mov [esp+KOLIBRI_THREAD_DATA_LAST_SY*4],edx
|
||||||
push edx
|
push edx
|
||||||
push ecx
|
push ecx
|
||||||
push ebx
|
push ebx
|
||||||
@ -205,12 +205,12 @@ end if
|
|||||||
mov edx,esp
|
mov edx,esp
|
||||||
push ecx
|
push ecx
|
||||||
push edx
|
push edx
|
||||||
call @@MenuetOnSize$qpippv
|
call @@KolibriOnSize$qpippv
|
||||||
add esp,24
|
add esp,24
|
||||||
test dword [esp+MENUET_THREAD_DATA_FLAG*4],3
|
test dword [esp+KOLIBRI_THREAD_DATA_FLAG*4],3
|
||||||
jz .main_cycle
|
jz .main_cycle
|
||||||
.main_paint:
|
.main_paint:
|
||||||
cmp dword [esp+MENUET_THREAD_DATA_FLAG*4],0
|
cmp dword [esp+KOLIBRI_THREAD_DATA_FLAG*4],0
|
||||||
jl .main_close
|
jl .main_close
|
||||||
push esp
|
push esp
|
||||||
push dword 0
|
push dword 0
|
||||||
@ -219,15 +219,15 @@ end if
|
|||||||
.main_cycle:
|
.main_cycle:
|
||||||
mov eax,11
|
mov eax,11
|
||||||
.main_message:
|
.main_message:
|
||||||
cmp dword [esp+MENUET_THREAD_DATA_FLAG*4],0
|
cmp dword [esp+KOLIBRI_THREAD_DATA_FLAG*4],0
|
||||||
jl .main_close
|
jl .main_close
|
||||||
int 0x40
|
int 0x40
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jnz .main_on_message
|
jnz .main_on_message
|
||||||
cmp dword [esp+MENUET_THREAD_DATA_FLAG*4],0
|
cmp dword [esp+KOLIBRI_THREAD_DATA_FLAG*4],0
|
||||||
jne .main_paint
|
jne .main_paint
|
||||||
push esp
|
push esp
|
||||||
call @@MenuetOnIdle$qppv
|
call @@KolibriOnIdle$qppv
|
||||||
pop ecx
|
pop ecx
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jz .main_cycle
|
jz .main_cycle
|
||||||
@ -240,12 +240,12 @@ end if
|
|||||||
jmp .main_message
|
jmp .main_message
|
||||||
.main_key_press:
|
.main_key_press:
|
||||||
push esp
|
push esp
|
||||||
call @@MenuetOnKeyPress$qppv
|
call @@KolibriOnKeyPress$qppv
|
||||||
pop ecx
|
pop ecx
|
||||||
jmp .main_cycle
|
jmp .main_cycle
|
||||||
.main_mouse:
|
.main_mouse:
|
||||||
push esp
|
push esp
|
||||||
call @@MenuetOnMouse$qppv
|
call @@KolibriOnMouse$qppv
|
||||||
pop ecx
|
pop ecx
|
||||||
jmp .main_cycle
|
jmp .main_cycle
|
||||||
.main_on_message:
|
.main_on_message:
|
||||||
@ -263,9 +263,9 @@ end if
|
|||||||
test al,al
|
test al,al
|
||||||
jnz .main_cycle
|
jnz .main_cycle
|
||||||
.main_close:
|
.main_close:
|
||||||
btr dword [esp+MENUET_THREAD_DATA_FLAG*4],31
|
btr dword [esp+KOLIBRI_THREAD_DATA_FLAG*4],31
|
||||||
push esp
|
push esp
|
||||||
call @@MenuetOnClose$qppv
|
call @@KolibriOnClose$qppv
|
||||||
pop ecx
|
pop ecx
|
||||||
test al,al
|
test al,al
|
||||||
jz .main_button
|
jz .main_button
|
||||||
@ -304,7 +304,7 @@ end if
|
|||||||
lock dec dword [@Kolibri@_ThreadScanCount+4]
|
lock dec dword [@Kolibri@_ThreadScanCount+4]
|
||||||
mov ebp,[esp+4]
|
mov ebp,[esp+4]
|
||||||
mov ebx,[esp]
|
mov ebx,[esp]
|
||||||
add esp,MENUET_THREAD_DATA_LEN*4
|
add esp,KOLIBRI_THREAD_DATA_LEN*4
|
||||||
mov eax,ebp
|
mov eax,ebp
|
||||||
pop edi esi
|
pop edi esi
|
||||||
xchg ebp,[esp+8]
|
xchg ebp,[esp+8]
|
||||||
@ -324,7 +324,7 @@ macro call func
|
|||||||
proc @Kolibri@Redraw$qippv
|
proc @Kolibri@Redraw$qippv
|
||||||
push ebp
|
push ebp
|
||||||
mov ebp,[esp+12]
|
mov ebp,[esp+12]
|
||||||
mov edx,[ebp+MENUET_THREAD_DATA_FLAG*4]
|
mov edx,[ebp+KOLIBRI_THREAD_DATA_FLAG*4]
|
||||||
cmp dword [esp+8],0
|
cmp dword [esp+8],0
|
||||||
jl .redraw_only_inv
|
jl .redraw_only_inv
|
||||||
jz .redraw_no_frame
|
jz .redraw_no_frame
|
||||||
@ -333,7 +333,7 @@ proc @Kolibri@Redraw$qippv
|
|||||||
bt edx,30
|
bt edx,30
|
||||||
jnc .redraw_begin
|
jnc .redraw_begin
|
||||||
or dl,1
|
or dl,1
|
||||||
mov [ebp+MENUET_THREAD_DATA_FLAG*4],edx
|
mov [ebp+KOLIBRI_THREAD_DATA_FLAG*4],edx
|
||||||
jmp .redraw_end
|
jmp .redraw_end
|
||||||
.redraw_only_inv:
|
.redraw_only_inv:
|
||||||
test dl,3
|
test dl,3
|
||||||
@ -343,20 +343,20 @@ proc @Kolibri@Redraw$qippv
|
|||||||
ret
|
ret
|
||||||
.redraw_begin:
|
.redraw_begin:
|
||||||
push ebx esi edi
|
push ebx esi edi
|
||||||
and dword [ebp+MENUET_THREAD_DATA_FLAG*4],0xFFFFFFFC
|
and dword [ebp+KOLIBRI_THREAD_DATA_FLAG*4],0xFFFFFFFC
|
||||||
test dl,2
|
test dl,2
|
||||||
jz .redraw_picture
|
jz .redraw_picture
|
||||||
mov eax,12
|
mov eax,12
|
||||||
mov ebx,1
|
mov ebx,1
|
||||||
int 0x40
|
int 0x40
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov ebx,[ebp+MENUET_THREAD_DATA_X*4]
|
mov ebx,[ebp+KOLIBRI_THREAD_DATA_X*4]
|
||||||
mov ecx,[ebp+MENUET_THREAD_DATA_Y*4]
|
mov ecx,[ebp+KOLIBRI_THREAD_DATA_Y*4]
|
||||||
mov edx,[ebp+MENUET_THREAD_DATA_C_WINDOW*4]
|
mov edx,[ebp+KOLIBRI_THREAD_DATA_C_WINDOW*4]
|
||||||
mov esi,[ebp+MENUET_THREAD_DATA_C_HEADER*4]
|
mov esi,[ebp+KOLIBRI_THREAD_DATA_C_HEADER*4]
|
||||||
mov edi,[ebp+MENUET_THREAD_DATA_C_BORDER*4]
|
mov edi,[ebp+KOLIBRI_THREAD_DATA_C_BORDER*4]
|
||||||
int 0x40
|
int 0x40
|
||||||
mov edx,[ebp+MENUET_THREAD_DATA_TITLE*4]
|
mov edx,[ebp+KOLIBRI_THREAD_DATA_TITLE*4]
|
||||||
test edx,edx
|
test edx,edx
|
||||||
jz .window_defined
|
jz .window_defined
|
||||||
mov edi,edx
|
mov edi,edx
|
||||||
@ -370,7 +370,7 @@ proc @Kolibri@Redraw$qippv
|
|||||||
jz .window_defined
|
jz .window_defined
|
||||||
mov eax,4
|
mov eax,4
|
||||||
mov ebx,0x00070007
|
mov ebx,0x00070007
|
||||||
mov ecx,[ebp+MENUET_THREAD_DATA_C_TITLE*4]
|
mov ecx,[ebp+KOLIBRI_THREAD_DATA_C_TITLE*4]
|
||||||
int 0x40
|
int 0x40
|
||||||
.window_defined:
|
.window_defined:
|
||||||
mov eax,12
|
mov eax,12
|
||||||
@ -380,12 +380,12 @@ proc @Kolibri@Redraw$qippv
|
|||||||
mov eax,12
|
mov eax,12
|
||||||
mov ebx,2
|
mov ebx,2
|
||||||
int 0x40
|
int 0x40
|
||||||
mov esi,[ebp+MENUET_THREAD_DATA_PICTURE*4]
|
mov esi,[ebp+KOLIBRI_THREAD_DATA_PICTURE*4]
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jz .redraw_end_draw
|
jz .redraw_end_draw
|
||||||
mov ecx,[ebp+MENUET_THREAD_DATA_SZ_PICT*4]
|
mov ecx,[ebp+KOLIBRI_THREAD_DATA_SZ_PICT*4]
|
||||||
jecxz .redraw_end_draw
|
jecxz .redraw_end_draw
|
||||||
mov al,byte [ebp+MENUET_THREAD_DATA_C_WINDOW*4+3]
|
mov al,byte [ebp+KOLIBRI_THREAD_DATA_C_WINDOW*4+3]
|
||||||
and al,15
|
and al,15
|
||||||
mov edx,MENUET_BORDER_SIZE*65536+MENUET_HEADER_SIZE
|
mov edx,MENUET_BORDER_SIZE*65536+MENUET_HEADER_SIZE
|
||||||
cmp al,3
|
cmp al,3
|
||||||
@ -448,11 +448,11 @@ proc @Kolibri@ExitProcess$qv
|
|||||||
mov eax,dword [@Kolibri@_ThreadTable+eax*4]
|
mov eax,dword [@Kolibri@_ThreadTable+eax*4]
|
||||||
jmp .exit_process_test
|
jmp .exit_process_test
|
||||||
.exit_process_next:
|
.exit_process_next:
|
||||||
mov eax,dword [eax+MENUET_THREAD_DATA_NEXT*4]
|
mov eax,dword [eax+KOLIBRI_THREAD_DATA_NEXT*4]
|
||||||
.exit_process_test:
|
.exit_process_test:
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jz .exit_process_continue
|
jz .exit_process_continue
|
||||||
cmp ebx,[eax+MENUET_THREAD_DATA_PID*4]
|
cmp ebx,[eax+KOLIBRI_THREAD_DATA_PID*4]
|
||||||
jnz .exit_process_next
|
jnz .exit_process_next
|
||||||
mov eax,18
|
mov eax,18
|
||||||
mov ebx,2
|
mov ebx,2
|
||||||
@ -492,7 +492,7 @@ endp
|
|||||||
|
|
||||||
proc @Kolibri@ReturnMessageLoop$qppv,@Kolibri@ThreadMain$qpvt1
|
proc @Kolibri@ReturnMessageLoop$qppv,@Kolibri@ThreadMain$qpvt1
|
||||||
mov esp,[esp+4]
|
mov esp,[esp+4]
|
||||||
bt dword [esp+MENUET_THREAD_DATA_FLAG*4],30
|
bt dword [esp+KOLIBRI_THREAD_DATA_FLAG*4],30
|
||||||
jc Menuet_main_end
|
jc Menuet_main_end
|
||||||
jmp Menuet_main_cycle
|
jmp Menuet_main_cycle
|
||||||
endp
|
endp
|
||||||
@ -584,6 +584,17 @@ proc @Kolibri@ReadCommonColors$qpui uses ebx
|
|||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
proc @Kolibri@DrawText$qssipxc uses ebx
|
||||||
|
mov eax,4
|
||||||
|
mov ebx,[esp+8-2]
|
||||||
|
mov bx,[esp+12]
|
||||||
|
mov ecx,[esp+16]
|
||||||
|
or ecx,0x80000000
|
||||||
|
mov edx,[esp+20]
|
||||||
|
int 0x40
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
proc @Kolibri@GetProcessInfo$qpuipct1t1piui uses ebx esi edi
|
proc @Kolibri@GetProcessInfo$qpuipct1t1piui uses ebx esi edi
|
||||||
sub esp,1024
|
sub esp,1024
|
||||||
mov eax,9
|
mov eax,9
|
||||||
@ -646,7 +657,7 @@ endp
|
|||||||
|
|
||||||
proc @Kolibri@GetPid$qppv
|
proc @Kolibri@GetPid$qppv
|
||||||
mov ecx,[esp+4]
|
mov ecx,[esp+4]
|
||||||
mov eax,[ecx+MENUET_THREAD_DATA_PID*4]
|
mov eax,[ecx+KOLIBRI_THREAD_DATA_PID*4]
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
@ -691,11 +702,11 @@ proc @Kolibri@GetThreadData$qui
|
|||||||
mov ecx,[esp+4]
|
mov ecx,[esp+4]
|
||||||
jmp .get_thread_data_test
|
jmp .get_thread_data_test
|
||||||
.get_thread_data_loop:
|
.get_thread_data_loop:
|
||||||
mov eax,dword [eax+MENUET_THREAD_DATA_NEXT*4]
|
mov eax,dword [eax+KOLIBRI_THREAD_DATA_NEXT*4]
|
||||||
.get_thread_data_test:
|
.get_thread_data_test:
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jz .get_thread_data_end
|
jz .get_thread_data_end
|
||||||
cmp ecx,[eax+MENUET_THREAD_DATA_PID*4]
|
cmp ecx,[eax+KOLIBRI_THREAD_DATA_PID*4]
|
||||||
jnz .get_thread_data_loop
|
jnz .get_thread_data_loop
|
||||||
.get_thread_data_end:
|
.get_thread_data_end:
|
||||||
lock dec dword [@Kolibri@_ThreadScanCount]
|
lock dec dword [@Kolibri@_ThreadScanCount]
|
||||||
|
@ -46,13 +46,13 @@ macro usedef [link]
|
|||||||
if ~link eq
|
if ~link eq
|
||||||
virtual at 0
|
virtual at 0
|
||||||
forward
|
forward
|
||||||
dd link
|
dd link
|
||||||
common
|
common
|
||||||
end virtual
|
end virtual
|
||||||
end if
|
end if
|
||||||
}
|
}
|
||||||
|
|
||||||
macro define x,[link]
|
macro define_f x,[link]
|
||||||
{
|
{
|
||||||
common
|
common
|
||||||
if x eq
|
if x eq
|
||||||
|
@ -1699,7 +1699,7 @@ void Paint(int what, TThreadData th)
|
|||||||
SetPicture(picture, (unsigned short)xpar.win, (unsigned short)ypar.win, th);
|
SetPicture(picture, (unsigned short)xpar.win, (unsigned short)ypar.win, th);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MenuetOnStart(TStartData &me_start, TThreadData th)
|
bool KolibriOnStart(TStartData &me_start, TThreadData th)
|
||||||
{
|
{
|
||||||
randomize();
|
randomize();
|
||||||
me_start.WinData.Title = "Black and white Life";
|
me_start.WinData.Title = "Black and white Life";
|
||||||
@ -1714,14 +1714,14 @@ bool MenuetOnStart(TStartData &me_start, TThreadData th)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MenuetOnClose(TThreadData)
|
bool KolibriOnClose(TThreadData)
|
||||||
{
|
{
|
||||||
SetPictureSize(0, 0);
|
SetPictureSize(0, 0);
|
||||||
SetPoleSize(0, 0);
|
SetPoleSize(0, 0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int MenuetOnIdle(TThreadData th)
|
int KolibriOnIdle(TThreadData th)
|
||||||
{
|
{
|
||||||
static const unsigned int WAIT_TIME = 2, GEN_TIME = 1;
|
static const unsigned int WAIT_TIME = 2, GEN_TIME = 1;
|
||||||
int res = -1;
|
int res = -1;
|
||||||
@ -1788,7 +1788,7 @@ int MenuetOnIdle(TThreadData th)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuetOnSize(int window_rect[], Kolibri::TThreadData th)
|
void KolibriOnSize(int window_rect[], Kolibri::TThreadData th)
|
||||||
{
|
{
|
||||||
unsigned short w, h;
|
unsigned short w, h;
|
||||||
GetClientSize(w, h, window_rect[2], window_rect[3], th);
|
GetClientSize(w, h, window_rect[2], window_rect[3], th);
|
||||||
@ -1798,7 +1798,7 @@ void MenuetOnSize(int window_rect[], Kolibri::TThreadData th)
|
|||||||
Paint(PaintWNull | PaintWNow, th);
|
Paint(PaintWNull | PaintWNow, th);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuetOnKeyPress(TThreadData th)
|
void KolibriOnKeyPress(TThreadData th)
|
||||||
{
|
{
|
||||||
int ch;
|
int ch;
|
||||||
while ((ch = GetKey()) >= 0)
|
while ((ch = GetKey()) >= 0)
|
||||||
@ -1898,7 +1898,7 @@ void MenuetOnKeyPress(TThreadData th)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuetOnMouse(TThreadData th)
|
void KolibriOnMouse(TThreadData th)
|
||||||
{
|
{
|
||||||
short xp = 0, yp = 0;
|
short xp = 0, yp = 0;
|
||||||
int w, h, x, y, xx, yy, m;
|
int w, h, x, y, xx, yy, m;
|
||||||
|
Loading…
Reference in New Issue
Block a user