亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? desktop-lite.c

?? 這是針對 Linux (i386)平臺的 minigui 3.6.2 開發包(MiniGUI-Processes 運行模式)。
?? C
字號:
/*** $Id: desktop-lite.c,v 1.49 2003/12/11 05:07:04 weiym Exp $**** desktop-lite.c: The desktop for MiniGUI-Lite**** Copyright (C) 2003 Feynman Software.** Copyright (C) 1999 ~ 2000 Wei Yongming.**** Current maintainer: Wei Yongming.**** Create date: 1999/04/19*//*** This program is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License as published by** the Free Software Foundation; either version 2 of the License, or** (at your option) any later version.**** This program is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the** GNU General Public License for more details.**** You should have received a copy of the GNU General Public License** along with this program; if not, write to the Free Software** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//*** TODO:*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/termios.h>#include "common.h"#include "minigui.h"#include "gdi.h"#include "window.h"#include "cliprect.h"#include "gal.h"#include "internals.h"#include "ctrlclass.h"#include "menu.h"#include "timer.h"#include "dc.h"#include "icon.h"#include "sharedres.h"#include "misc.h"#ifndef _STAND_ALONE  #include "ourhdr.h"  #include "client.h"  #include "server.h"  #include "drawsemop.h"#endif/******************************* global data *********************************/RECT g_rcScr;HWND __mg_capture_wnd;HWND __mg_ime_wnd;MSGQUEUE __mg_dsk_msgs;PMAINWIN __mg_active_mainwnd;PTRACKMENUINFO __mg_ptmi;BOOL __mg_switch_away; // always be zero for clients.#ifndef _STAND_ALONEGHANDLE __mg_layer;RECT g_rcDesktop;#endif/********************* Window management support *****************************/static BLOCKHEAP sg_FreeInvRectList;static BLOCKHEAP sg_FreeClipRectList;static ZORDERINFO sg_MainWinZOrder;static ZORDERINFO sg_TopMostWinZOrder;static HWND sg_hCaretWnd;static UINT sg_uCaretBTime;static GCRINFO sg_ScrGCRInfo;#ifndef _STAND_ALONEGHANDLE GUIAPI GetLayerInfo (const char* layer_name, RECT* max_rect,                                int* nr_clients, BOOL* is_topmost, int* cli_active){    if (layer_name) {        LAYERINFO info;        if (mgIsServer) {            if (layer_name [0] == '\0') return INV_LAYER_HANDLE;            get_layer_info (0, layer_name, &info);        }        else {            REQUEST req;            req.id = REQID_LAYERINFO;            req.data = layer_name;            req.len_data = strlen (layer_name) + 1;            if (cli_request (&req, &info, sizeof (LAYERINFO)) < 0)                goto ret;        }        if (info.handle) {            if (max_rect) *max_rect = info.max_rect;            if (nr_clients) *nr_clients = info.nr_clients;            if (is_topmost) *is_topmost = info.is_topmost;            if (cli_active) *cli_active = info.cli_active;        }        return info.handle;    }ret:    return INV_LAYER_HANDLE;}BOOL GUIAPI BringLayer2Topmost (GHANDLE handle){    BOOL ret = FALSE;    if (handle != INV_LAYER_HANDLE) {        if (mgIsServer) {            MG_Layer* layer = (MG_Layer*) handle;            if (is_valid_layer (layer) && layer->cli_head) {                SetTopMostLayer (layer);                ret = TRUE;            }        }        else {            REQUEST req;            req.id = REQID_TOPMOSTLAYER;            req.data = &handle;            req.len_data = sizeof (GHANDLE);            if (cli_request (&req, &ret, sizeof (BOOL)) < 0)                ret = FALSE;        }    }    return ret;}BOOL GUIAPI SetActiveClient (int active){    BOOL ret = FALSE;    if (mgIsServer) {        if (active >= 0 && active < mgClientSize && mgClients [active].fd != -1) {            set_active_client (mgClients + active);            ret = TRUE;        }    }    else {        REQUEST req;        req.id = REQID_ACTIVECLIENT;        req.data = &active;        req.len_data = sizeof (int);        if (cli_request (&req, &ret, sizeof (BOOL)) < 0)            ret = FALSE;    }    return ret;} GHANDLE GUIAPI JoinLayer (const char* layer_name, const char* client_name,                int lx, int ty, int rx, int by){    GHANDLE layer_handle = INV_LAYER_HANDLE;    g_rcDesktop.left = lx;    g_rcDesktop.top = ty;    g_rcDesktop.right = rx;    g_rcDesktop.bottom = by;    NormalizeRect (&g_rcDesktop);    IntersectRect (&g_rcDesktop, &g_rcDesktop, &g_rcScr);    if (mgIsServer) { // will ignore layer_name and app_name        SetCursor (GetSystemCursor (IDC_ARROW));        SetCursorPos (g_rcScr.right >> 1, g_rcScr.bottom >> 1);        g_rcDesktop = g_rcScr;        SHAREDRES_TOPMOST_LAYER = __mg_layer = 0;        layer_handle = 1;    }    else {        REQUEST req;        JOINLAYERINFO info;        JOINEDCLIENTINFO joined_info;        if (layer_name) {            strncpy (info.layer_name, layer_name, LEN_LAYER_NAME);            info.layer_name [LEN_LAYER_NAME] = '\0';        }        else            info.layer_name [0] = '\0';        if (client_name) {            strncpy (info.client_name, client_name, LEN_CLIENT_NAME);            info.client_name [LEN_CLIENT_NAME] = '\0';        }        else            info.client_name [0] = '\0';        info.desktop_rc = g_rcDesktop;        req.id = REQID_JOINLAYER;        req.data = &info;        req.len_data = sizeof (JOINLAYERINFO);        if (cli_request (&req, &joined_info, sizeof (JOINEDCLIENTINFO)) < 0)            goto ret;        if (IsRectEmpty (&joined_info.desktop_rc)) {            fprintf (stderr, "JoinLayer: Empty desktop rect.\n");            goto ret;        }        layer_handle = joined_info.layer_handle;        g_rcDesktop = joined_info.desktop_rc;        SelectClipRect (HDC_SCREEN, &g_rcDesktop);        __mg_layer = layer_handle;    }    InitClipRgn (&sg_ScrGCRInfo.crgn, &sg_FreeClipRectList);    SetClipRgn (&sg_ScrGCRInfo.crgn, &g_rcDesktop);    sg_ScrGCRInfo.age = 0;    SendMessage (HWND_DESKTOP, MSG_STARTSESSION, 0, 0);    SendMessage (HWND_DESKTOP, MSG_ERASEDESKTOP, 0, 0);ret:    return layer_handle;}#endif /* !STAND_ALONE */static BOOL InitWndManagementInfo (void){#ifndef _INCORE_RES    if (!InitMainWinMetrics())        return FALSE;#endif    __mg_capture_wnd = HWND_DESKTOP;    __mg_active_mainwnd = NULL;    __mg_ptmi = NULL;    __mg_ime_wnd = HWND_DESKTOP;    sg_hCaretWnd = HWND_DESKTOP;    return TRUE;}#ifdef _STAND_ALONE//#include "sysres.c"#elsePBITMAP SystemBitmap [SYSBMP_ITEM_NUMBER];HICON  LargeSystemIcon [SYSICO_ITEM_NUMBER];HICON  SmallSystemIcon [SYSICO_ITEM_NUMBER];static void init_system_bitmap (int id){    int i;    void *temp;	int bpp;    bpp = BYTESPERPHYPIXEL;    temp   = mgSharedRes + ((PG_RES)mgSharedRes)->bmpoffset;    if (id < ((PG_RES)mgSharedRes)->bmpnum) {        if (!(SystemBitmap [id] = (PBITMAP) malloc (sizeof (BITMAP))))            return;        for (i = 0; i < id; i++)		    temp += sizeof(BITMAP) + ((PBITMAP)temp)->bmPitch * ((PBITMAP)temp)->bmHeight;		SystemBitmap[id]->bmWidth  = ((PBITMAP)temp)->bmWidth;		SystemBitmap[id]->bmHeight = ((PBITMAP)temp)->bmHeight;		SystemBitmap[id]->bmType = BMP_TYPE_NORMAL;		SystemBitmap[id]->bmBitsPerPixel = bpp << 3;		SystemBitmap[id]->bmBytesPerPixel = bpp;		SystemBitmap[id]->bmPitch  = ((PBITMAP)temp)->bmPitch;		SystemBitmap[id]->bmColorKey = ((PBITMAP)temp)->bmColorKey;		SystemBitmap[id]->bmBits = temp + sizeof(BITMAP);    }}PBITMAP GUIAPI GetSystemBitmap (int id){    if (id >= SYSBMP_ITEM_NUMBER || id < 0)        return NULL;    if (SystemBitmap [id] == NULL)        init_system_bitmap (id);    return SystemBitmap [id];}static void init_large_system_icon (int id){    void *temp;	int bpp;    bpp = BYTESPERPHYPIXEL;	temp = mgSharedRes + ((PG_RES)mgSharedRes)->iconoffset;    if (id < ((PG_RES)mgSharedRes)->iconnum) {        if (!(LargeSystemIcon[id] = (HICON)malloc (sizeof(ICON))))            return;		temp += (sizeof(ICON) * 2 + (2*32*32 + 2*16*16)*bpp) * id;        ((PICON)LargeSystemIcon[id])->width   = ((PICON)temp)->width;        ((PICON)LargeSystemIcon[id])->height  = ((PICON)temp)->height;#ifdef _USE_NEWGAL        ((PICON)LargeSystemIcon[id])->pitch   = ((PICON)temp)->pitch;#endif        ((PICON)LargeSystemIcon[id])->AndBits = temp + sizeof(ICON);        ((PICON)LargeSystemIcon[id])->XorBits = temp + sizeof(ICON) + bpp*32*32;    }}static void init_small_system_icon (int id){    void *temp;	int bpp;    bpp = BYTESPERPHYPIXEL;	temp = mgSharedRes + ((PG_RES)mgSharedRes)->iconoffset;    if (id < ((PG_RES)mgSharedRes)->iconnum) {        if (!(SmallSystemIcon[id] = (HICON)malloc (sizeof(ICON))))            return;		temp += (sizeof(ICON)*2 + (2*32*32 + 2*16*16)*bpp) * id;		temp += sizeof(ICON) + 2*bpp*32*32;        ((PICON)SmallSystemIcon[id])->width   = ((PICON)temp)->width;        ((PICON)SmallSystemIcon[id])->height  = ((PICON)temp)->height;#ifdef _USE_NEWGAL        ((PICON)SmallSystemIcon[id])->pitch   = ((PICON)temp)->pitch;#endif        ((PICON)SmallSystemIcon[id])->AndBits = temp + sizeof(ICON);        ((PICON)SmallSystemIcon[id])->XorBits = temp + sizeof(ICON) + bpp*16*16;    }}HICON GUIAPI GetLargeSystemIcon (int id){    if (id >= SYSICO_ITEM_NUMBER || id < 0)        return 0;    if (LargeSystemIcon [id] == 0)        init_large_system_icon (id);    return LargeSystemIcon [id];}HICON GUIAPI GetSmallSystemIcon (int id){    if (id >= SYSICO_ITEM_NUMBER || id < 0)        return 0;    if (SmallSystemIcon [id] == 0)        init_small_system_icon (id);    return SmallSystemIcon [id];}static void TerminateSharedSysRes (void){    int i;        for (i=0; i<SYSBMP_ITEM_NUMBER; i++) {        if (SystemBitmap [i]) {            free (SystemBitmap [i]);        }    }    for (i=0; i<SYSICO_ITEM_NUMBER; i++) {        if (SmallSystemIcon [i])            free ((PICON)SmallSystemIcon[i]);        if (LargeSystemIcon [i])            free ((PICON)LargeSystemIcon[i]);    }}#endif /* !_STAND_ALONE */static void InitZOrderInfo (PZORDERINFO pZOrderInfo, HWND hHost);BOOL InitDesktop (void){    /*     * Init ZOrderInfo here.     */    InitZOrderInfo (&sg_MainWinZOrder, HWND_DESKTOP);    InitZOrderInfo (&sg_TopMostWinZOrder, HWND_DESKTOP);        /*     * Init heap of clipping rects.     */    InitFreeClipRectList (&sg_FreeClipRectList, SIZE_CLIPRECTHEAP);    /*     * Init heap of invalid rects.     */    InitFreeClipRectList (&sg_FreeInvRectList, SIZE_INVRECTHEAP);    // Init Window Management information.    if (!InitWndManagementInfo ())        return FALSE;#ifdef _STAND_ALONE    /*     * Load system resource here.     */    if (!InitSystemRes ()) {        fprintf (stderr, "DESKTOP: Can not initialize system resource!\n");        return FALSE;    }    InitClipRgn (&sg_ScrGCRInfo.crgn, &sg_FreeClipRectList);    SetClipRgn (&sg_ScrGCRInfo.crgn, &g_rcScr);    sg_ScrGCRInfo.age = 0;    SendMessage (HWND_DESKTOP, MSG_STARTSESSION, 0, 0);    SendMessage (HWND_DESKTOP, MSG_ERASEDESKTOP, 0, 0);#endif    return TRUE;}#include "desktop-comm.c"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情在线一区二区三区| 欧美日精品一区视频| 亚洲欧美激情小说另类| 欧美哺乳videos| 91精品1区2区| 波多野结衣精品在线| 久久成人羞羞网站| 夜夜嗨av一区二区三区中文字幕| 久久久亚洲精品石原莉奈| 欧美精品在线视频| 91黄色免费看| 91在线国产观看| 国产aⅴ综合色| 九色|91porny| 日韩精品电影一区亚洲| 亚洲国产成人av好男人在线观看| 亚洲欧洲精品成人久久奇米网| 久久新电视剧免费观看| 777精品伊人久久久久大香线蕉| 91免费观看视频| 97久久精品人人做人人爽| 高清beeg欧美| 国产精品中文字幕一区二区三区| 午夜成人免费电影| 亚洲国产一区在线观看| 亚洲综合色噜噜狠狠| 亚洲欧美aⅴ...| 亚洲人成在线观看一区二区| 国产精品伦理一区二区| 国产无人区一区二区三区| 久久综合狠狠综合| 亚洲精品一区二区三区在线观看| 精品少妇一区二区| 精品久久久久久久久久久院品网 | 美女诱惑一区二区| 亚洲成av人**亚洲成av**| 亚洲一区二区视频在线观看| 亚洲色大成网站www久久九九| 亚洲欧美综合色| 一区二区三区日韩欧美精品| 亚洲精品成人悠悠色影视| 亚洲午夜久久久久| 视频一区视频二区中文| 美女免费视频一区| 国产精品一区二区三区网站| 国内一区二区视频| 高清国产一区二区| 色综合久久久久网| 欧美色网站导航| 日韩欧美一区在线| 久久麻豆一区二区| 亚洲天堂中文字幕| 亚洲第一成人在线| 久久99国产乱子伦精品免费| 国产高清精品久久久久| 一本到三区不卡视频| 欧美色精品在线视频| 欧美一级片在线| 国产欧美精品一区二区三区四区| 一色桃子久久精品亚洲| 亚洲成人三级小说| 韩国毛片一区二区三区| 成人黄色网址在线观看| 欧美艳星brazzers| 日韩三级.com| 国产精品美女久久福利网站| 亚洲自拍另类综合| 国内精品第一页| 一道本成人在线| 欧美一区二区三区系列电影| 国产日韩欧美a| 午夜久久久久久| 国产.精品.日韩.另类.中文.在线.播放| 91猫先生在线| 精品日韩一区二区| 亚洲视频 欧洲视频| 日本不卡不码高清免费观看| 不卡在线视频中文字幕| 制服丝袜亚洲播放| 国产精品国产三级国产三级人妇| 亚洲成人激情社区| 丁香啪啪综合成人亚洲小说| 欧美日韩一区久久| 国产精品入口麻豆原神| 青青草国产成人99久久| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美一区二区三区人| 亚洲欧美日韩在线| 国产一区二区美女| 7777精品伊人久久久大香线蕉经典版下载 | 欧美视频你懂的| 国产欧美一区视频| 亚洲图片欧美视频| 成人午夜在线免费| 欧美电影精品一区二区| 亚洲一二三级电影| 99精品视频中文字幕| 2023国产一二三区日本精品2022| 亚洲午夜精品网| 91污在线观看| 国产精品丝袜久久久久久app| 婷婷综合在线观看| 在线免费精品视频| 中文字幕一区二区在线播放| 韩日av一区二区| 欧美一区二区三区四区五区 | 日本美女视频一区二区| 91啦中文在线观看| 久久无码av三级| 美日韩黄色大片| 6080国产精品一区二区| 夜夜爽夜夜爽精品视频| 色哟哟精品一区| 国产精品久久久久久久久晋中| 久久国内精品自在自线400部| 日韩精品中文字幕一区 | 中文字幕综合网| 美女视频一区在线观看| 欧美亚洲另类激情小说| 国产丝袜在线精品| 天堂在线一区二区| 欧美日韩亚洲综合一区二区三区| 亚洲女同一区二区| 91福利资源站| 欧美日韩免费一区二区三区视频| 欧美高清dvd| 在线播放亚洲一区| 午夜精品久久久久久久久| 亚洲国产精品自拍| 色噜噜偷拍精品综合在线| 亚洲丝袜自拍清纯另类| 成人精品国产免费网站| 国产欧美日韩另类视频免费观看| 激情深爱一区二区| 欧美不卡激情三级在线观看| 激情伊人五月天久久综合| 精品国产三级电影在线观看| 九九国产精品视频| 亚洲精品在线三区| 国产九九视频一区二区三区| 国产婷婷精品av在线| 国产成人精品免费在线| 国产三区在线成人av| 日韩精品电影在线| 色综合色综合色综合色综合色综合 | 激情欧美一区二区| 久久久亚洲高清| 欧美色图一区二区三区| 日韩精品福利网| 欧美xingq一区二区| 国产在线一区二区| 久久综合色综合88| 国产成人日日夜夜| 国产精品久久久久久久裸模| jiyouzz国产精品久久| 中文字幕亚洲视频| 欧美写真视频网站| 免费观看久久久4p| 国产网站一区二区| 日本丶国产丶欧美色综合| 午夜视频一区在线观看| 久久午夜羞羞影院免费观看| youjizz久久| 亚洲午夜羞羞片| 欧美一区二区三区啪啪| 粉嫩久久99精品久久久久久夜| 亚洲啪啪综合av一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 337p粉嫩大胆噜噜噜噜噜91av| 国产91精品入口| 亚洲图片欧美一区| 精品国产不卡一区二区三区| 91社区在线播放| 日av在线不卡| 中文字幕一区二区三区av| 69精品人人人人| 成人污污视频在线观看| 三级影片在线观看欧美日韩一区二区| 欧美变态tickling挠脚心| 不卡视频在线观看| 五月天激情综合网| 国产精品三级视频| 日韩一区二区麻豆国产| 91啪亚洲精品| 国产一区二区精品在线观看| 亚洲一区二区在线视频| 国产午夜精品一区二区三区视频 | 欧美视频自拍偷拍| 国产一区在线精品| 亚洲午夜在线观看视频在线| 国产日产精品1区| 欧美日韩国产乱码电影| 国产白丝网站精品污在线入口| 亚州成人在线电影| 中文av一区二区| 日韩欧美综合一区| 欧美视频中文字幕| av资源站一区| 国产综合一区二区| 日韩精品久久理论片|