📄 uiwm_queue.h
字号:
/******************************************************************************
FILE: wm_queue.h (/rtos/kernel/usrlib/gui_win/include/)
Window Message Module
Copyright (c) 2001, III Technology Research Division
AUTHOR: BlackDog <ealin@iii.org.tw>
HISTORY:
*******************************************************************************
*/
#ifndef _UIWM_QUEUE_H
#define _UIWM_QUEUE_H
#include <pr2k.h>
#include <typedefine.h>
#include <uiGui_Cfg.h>
#include <uiMessage.h>
#include <kernel/thread.h>
/*********************************************
MESSAGE DATA STRUCTURE
*********************************************/
typedef struct tagGuiMessage
{
WORD messageType;
short x, y;
BYTE button;
HNDL handle;
HNDL elseInfo ;
}TGuiMessage;
typedef struct tagGuiMessageQueue
{
/* message queue所占的空间*/
TGuiMessage * mQueue;
/* 指到mesage queue头, 尾的index*/
/* initial value must be 0*/
WORD mqFront;
WORD mqRear;
struct thread * ownerThread ;
short suspendFlag ; // 0 : not suspended, 1 : suspended
short nMaxMessageNo;
}TGuiMessageQueue;
/*********************************************
FUNCTION DECLARATION
*********************************************/
/*
Functions below are MultiThread & MultiWindows Safe!!
*/
/* return NULL if something error !!*/
DLL_EXP(TGuiMessageQueue *) guiAllocateMessageQueue(void);
//return -1 if pQueue is null;
DLL_EXP(STATUS) guiReleaseMessageQueue(TGuiMessageQueue *pQueue);
/* return -1 if this message queue is full*/
DLL_EXP(STATUS) guiEnqueue(TGuiMessageQueue* queue,TGuiMessage* message);
/* return -1 if this message is empty*/
DLL_EXP(STATUS) guiDequeue(TGuiMessageQueue* queue,TGuiMessage* message);
/* return -1 if this message is empty*/
DLL_EXP(STATUS) guiDequeue2(TGuiMessageQueue* queue,TGuiMessage* message);
/* return -1 if this message is empty*/
DLL_EXP(STATUS) guiPequeue(TGuiMessageQueue *queue, TGuiMessage *message);
/*
Internal-used Functions
*/
STATUS _guiEnqueue( TGuiMessageQueue* queue, TGuiMessage* message );
//
// clear the message queue(give up all messages in this queue)
//
DLL_EXP(void) guiEmptyQueue(TGuiMessageQueue* queue) ;
void _guiEmptyQueue(TGuiMessageQueue* queue) ;
void guiBroadcasting(TGuiMessage* message) ;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -