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

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

?? xapm.c

?? 電源管理程序
?? C
字號:
/* xapm.c --  * Created: Tue Jan  9 21:23:09 1996 by r.faith@ieee.org * Revised: Sun Apr 21 16:37:44 1996 by r.faith@ieee.org * Copyright 1996 Rickard E. Faith (r.faith@ieee.org) * * Modified: Fri Mar 26 11:26:00 1999 by bill.mair@bm-soft.com *           Added support for IBM ThinkPad charging options *           Added option display of AC/Battery useage * * 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, 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., * 675 Mass Ave, Cambridge, MA 02139, USA. * */#include <stdio.h>#include <getopt.h>#include <X11/Intrinsic.h>#include <X11/StringDefs.h>#include <X11/cursorfont.h>#include <X11/Xaw/Form.h>#include <X11/Xaw/Command.h>#include <X11/Xaw/Scrollbar.h>#include "apm.h"typedef struct _instance_variables{    Pixel highColor;    Pixel lowColor;    Pixel criticalColor;    Pixel chargingColor;    Pixel foreground;    int highValue;    int lowValue;    String geometry;    int delay;    Boolean displayPercent;} instance_variable_rec;static XtAppContext app_context;static Widget scrollbar;static Widget topLevel;static Widget command;static XtIntervalId timerId;static instance_variable_rec iv;static int debug;/* Bill Mair, 26.03.1999 ----> */#define IBM_THINKPAD       0	/* ThinkPads use the battery_flags to indicate charging */#define SHOW_AC_BAT_STATUS 1#define DEBUG_UPDATE       0#if IBM_THINKPAD == 1#define TP_CHARGE_FLAG 0x08	/* This works on the TP770X but may be different on other TPs */#endif#if SHOW_AC_BAT_STATUS == 1#define CHAR_COUNT 5#else#define CHAR_COUNT 4#endif/* <---- Bill Mair, 26.03.1999 */static void update(XtPointer client_data, XtIntervalId * id){    apm_info i;    char buf[128];    static int pixel = -1;    static int lpixel = -1;    static int bpixel = -1;    static int lastPercentage = -1;    static int lastMinutes = -1;    static int lastDisplay = -1;    static int count = 0;#if SHOW_AC_BAT_STATUS == 1    static int lastACStatus = -1;#endif    apm_read(&i);#if DEBUG_UPDATE == 1    /* BM: Added this to display all of the APM flags */    if (debug)    {	printf("\nxapm update\n");	printf("  apm_flags:          %d\n", i.apm_flags);	printf("  ac_line_status:     %d\n", i.ac_line_status);	printf("  battery_status:     %d\n", i.battery_status);	printf("  battery_flags:      %d\n", i.battery_flags);	printf("  battery_percentage: %d\n", i.battery_percentage);	printf("  battery_time:       %d\n", i.battery_time);	printf("  using_minutes:      %d\n", i.using_minutes);    }#endif    if (iv.displayPercent)    {	if (lastDisplay != iv.displayPercent	    || i.battery_percentage != lastPercentage#if SHOW_AC_BAT_STATUS == 1	    || i.ac_line_status != lastACStatus#endif	    )	{	    /* lastPercentage updated at end */#if SHOW_AC_BAT_STATUS == 1	    sprintf(buf, "%s%d%%", i.ac_line_status ? "P" : "B", i.battery_percentage);#else	    sprintf(buf, "%d%%", i.battery_percentage);#endif	    XtVaSetValues(command, XtNlabel, buf, NULL);	}    }    else    {	int minutes = i.using_minutes ? i.battery_time : i.battery_time / 60;	if (lastDisplay != iv.displayPercent || lastMinutes != minutes#if SHOW_AC_BAT_STATUS == 1	    || i.ac_line_status != lastACStatus#endif	    )	{	    lastMinutes = minutes;#if SHOW_AC_BAT_STATUS == 1	    sprintf(buf, "%s%s", i.ac_line_status ? "P" : "B", apm_time_nosec(minutes * 60));#else	    sprintf(buf, "%s", apm_time_nosec(minutes * 60));#endif	    XtVaSetValues(command, XtNlabel, buf, NULL);	}    }    lastDisplay = iv.displayPercent;#if SHOW_AC_BAT_STATUS == 1    lastACStatus = i.ac_line_status;#endif    if (i.battery_percentage <= iv.lowValue)    {	if (pixel != iv.criticalColor)	    XtVaSetValues(scrollbar, XtNforeground,			  pixel = iv.criticalColor, NULL);	if (bpixel != iv.criticalColor)	    XtVaSetValues(scrollbar, XtNborderColor,			  bpixel = iv.criticalColor, NULL);    }    else if (i.battery_percentage <= iv.highValue)    {	if (pixel != iv.lowColor)	    XtVaSetValues(scrollbar, XtNforeground, pixel = iv.lowColor, NULL);	if (bpixel != iv.foreground)	    XtVaSetValues(scrollbar, XtNborderColor,			  bpixel = iv.foreground, NULL);    }    else    {	if (pixel != iv.highColor)	    XtVaSetValues(scrollbar, XtNforeground, pixel = iv.highColor, NULL);	if (i.battery_percentage == 100)	{	    if (bpixel != iv.highColor)		XtVaSetValues(scrollbar, XtNborderColor,			      bpixel = iv.highColor, NULL);	}	else	{	    if (bpixel != iv.foreground)		XtVaSetValues(scrollbar, XtNborderColor,			      bpixel = iv.foreground, NULL);	}    }    if (debug)	printf("scrollbar color = %d\n", pixel);    if (i.battery_status == 3#if IBM_THINKPAD == 1	|| (i.battery_flags & TP_CHARGE_FLAG)#endif	)    {	if (lpixel != iv.chargingColor)	    XtVaSetValues(command, XtNforeground,			  lpixel = iv.chargingColor, NULL);    }    else    {	if (i.battery_percentage < iv.lowValue && count++ % 2)	{	    if (lpixel != iv.criticalColor)		XtVaSetValues(command,			 XtNforeground, lpixel = iv.criticalColor, NULL);	}	else	{	    if (lpixel != iv.foreground)		XtVaSetValues(command,			    XtNforeground, lpixel = iv.foreground, NULL);	}    }    if (debug)	printf("command color = %d, status = %d\n",	       lpixel, i.battery_status);    if (i.battery_percentage != lastPercentage)	XawScrollbarSetThumb(scrollbar, 0.0,			     i.battery_percentage < 0			     ? 0.0			     : i.battery_percentage / 100.0);    lastPercentage = i.battery_percentage;    timerId = XtAppAddTimeOut(app_context, 1000 * iv.delay + 500,			      update, app_context);}static void press(Widget w, XtPointer client_data, XtPointer call_data){    iv.displayPercent = !iv.displayPercent;    XtRemoveTimeOut(timerId);    timerId = XtAppAddTimeOut(app_context, 0, update, app_context);    if (debug)	printf("displayPercent = %d\n", iv.displayPercent);}static XrmOptionDescRec options[] ={    {"-highcolor", "*highColor", XrmoptionSepArg, NULL},    {"-lowcolor", "*lowColor", XrmoptionSepArg, NULL},    {"-criticalcolor", "*criticalColor", XrmoptionSepArg, NULL},    {"-chargingcolor", "*chargingColor", XrmoptionSepArg, NULL},    {"-highvalue", "*highValue", XrmoptionSepArg, NULL},    {"-lowvalue", "*lowValue", XrmoptionSepArg, NULL},    {"-delay", "*delay", XrmoptionSepArg, NULL},    {"-percent", "*percent", XrmoptionNoArg, (XtPointer) "true"},};#define offset(field) XtOffsetOf( instance_variable_rec, field )static XtResource resources[] ={    {"highColor", XtCForeground, XtRPixel, sizeof(Pixel),     offset(highColor), XtRString, "green"},    {"lowColor", XtCForeground, XtRPixel, sizeof(Pixel),     offset(lowColor), XtRString, "yellow"},    {"criticalColor", XtCForeground, XtRPixel, sizeof(Pixel),     offset(criticalColor), XtRString, "red"},    {"chargingColor", XtCForeground, XtRPixel, sizeof(Pixel),     offset(chargingColor), XtRString, "blue"},    {XtNforeground, XtCForeground, XtRPixel, sizeof(Pixel),     offset(foreground), XtRString, XtDefaultForeground},    {"highValue", XtCValue, XtRInt, sizeof(int),     offset(highValue), XtRImmediate, (XtPointer) 50},    {"lowValue", XtCValue, XtRInt, sizeof(int),     offset(lowValue), XtRImmediate, (XtPointer) 10},    {"geometry", XtCString, XtRString, sizeof(String),     offset(geometry), XtRString, (XtPointer) "10x100"},    {"delay", XtCValue, XtRInt, sizeof(int),     offset(delay), XtRImmediate, (XtPointer) 1},    {"percent", XtCValue, XtRBoolean, sizeof(Boolean),     offset(displayPercent), XtRImmediate, (XtPointer) FALSE},};int main(int argc, char **argv){    Cursor cursor;    int c;    Widget form;    XFontStruct *fs;    int fontWidth, fontHeight;    int x = 0, y = 0, height = 10, width = 100;    switch (apm_exists())    {    case 1:	fprintf(stderr, "No APM support in kernel\n");	exit(1);    case 2:	fprintf(stderr, "Old APM support in kernel\n");	exit(2);    }    topLevel = XtVaAppInitialize(&app_context, "XApm",				 options, XtNumber(options),				 &argc, argv, NULL, NULL);    XtGetApplicationResources(topLevel,			      &iv,			      resources,			      XtNumber(resources),			      NULL, 0);    if (iv.delay < 1)	iv.delay = 1;    XParseGeometry(iv.geometry, &x, &y, &width, &height);    while ((c = getopt(argc, argv, "DV")) != -1)	switch (c)	{	case 'D':	    ++debug;	    break;	case 'V':	    fprintf(stderr, "apmd version %s\n", VERSION);	    exit(0);	    break;	}    if (debug)    {	printf("highColor = %ld\n", iv.highColor);	printf("lowColor = %ld\n", iv.lowColor);	printf("criticalColor = %ld\n", iv.criticalColor);	printf("chargingColor = %ld\n", iv.chargingColor);	printf("foreground = %ld\n", iv.foreground);	printf("highValue = %d\n", iv.highValue);	printf("lowValue = %d\n", iv.lowValue);	printf("geometry = %s\n", iv.geometry);    }    cursor = XCreateFontCursor(XtDisplay(topLevel), XC_top_left_arrow);    form = XtVaCreateManagedWidget("form",				   formWidgetClass, topLevel,				   XtNorientation, XtorientHorizontal,				   XtNborderWidth, 0,				   XtNdefaultDistance, 2,				   NULL);    command = XtVaCreateManagedWidget("command",				      commandWidgetClass, form,				      XtNleft, XtChainLeft,				      XtNhighlightThickness, 0,				      XtNinternalHeight, 0,				      XtNinternalWidth, 0,				      XtNborderWidth, 0,				      XtNlabel, "",				      XtNresize, FALSE,				      NULL);    XtVaGetValues(command, XtNfont, &fs, NULL);    fontWidth = fs->max_bounds.width;    fontHeight = fs->max_bounds.ascent + fs->max_bounds.descent;    XtVaSetValues(command, XtNwidth, fontWidth * CHAR_COUNT, NULL);    if (debug)    {	int tmp = (width > fontWidth * CHAR_COUNT - 6)	? width - fontWidth * CHAR_COUNT - 6	: fontWidth * CHAR_COUNT;	printf("width = %d, using %d + %d = %d\n",	width, fontWidth * CHAR_COUNT, tmp, fontWidth * CHAR_COUNT + tmp);    }    scrollbar = XtVaCreateManagedWidget("scrollbar",					scrollbarWidgetClass, form,					XtNhorizDistance, 3,					XtNfromHoriz, command,				      XtNorientation, XtorientHorizontal,					XtNscrollHCursor, cursor,					XtNthickness, fontHeight,			  XtNlength, (width > fontWidth * CHAR_COUNT - 6)				     ? width - fontWidth * CHAR_COUNT - 6					: fontWidth * CHAR_COUNT,					NULL);    XawScrollbarSetThumb(scrollbar, 0.0, 0.0);    XtVaSetValues(scrollbar,		  XtNtranslations, XtParseTranslationTable(""), NULL);    XtAddCallback(command, XtNcallback, press, NULL);    XtRealizeWidget(topLevel);    timerId = XtAppAddTimeOut(app_context, 0, update, app_context);    XtAppMainLoop(app_context);    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91成人免费网站| 激情都市一区二区| 麻豆一区二区在线| 日本久久一区二区| 久久午夜老司机| 日韩国产精品91| 91亚洲精品乱码久久久久久蜜桃| 在线播放中文一区| 亚洲欧洲综合另类在线| 国产在线不卡一卡二卡三卡四卡| 欧美日韩在线综合| 亚洲欧美另类在线| 成人免费av在线| 国产欧美精品一区二区色综合朱莉| 人人狠狠综合久久亚洲| 在线亚洲高清视频| 一区二区三区四区视频精品免费| 国产成人在线视频网址| 久久久久久毛片| 激情欧美一区二区| 337p日本欧洲亚洲大胆色噜噜| 日日噜噜夜夜狠狠视频欧美人| 91福利国产成人精品照片| 国产精品大尺度| av在线播放不卡| 亚洲欧美在线视频观看| 成人高清在线视频| 国产精品久久久久久久久动漫| 国产成人免费视频网站高清观看视频 | 色一情一伦一子一伦一区| xvideos.蜜桃一区二区| 极品少妇xxxx偷拍精品少妇| 精品乱人伦一区二区三区| 日韩精品一二三| 4438x亚洲最大成人网| 日韩精品视频网| 欧美电影免费观看高清完整版在线 | 亚洲高清免费一级二级三级| 日本丶国产丶欧美色综合| 一区二区三区日韩在线观看| 日本精品免费观看高清观看| 一区二区在线免费观看| 色播五月激情综合网| 亚洲综合图片区| 精品视频全国免费看| 婷婷一区二区三区| 日韩欧美中文一区| 蜜臀av一区二区三区| 国产三级一区二区| 成人高清免费观看| 亚洲自拍与偷拍| 久久久久久久一区| av电影天堂一区二区在线观看| 一区二区三区小说| 91精品国产免费| 国产成人免费在线视频| 自拍偷在线精品自拍偷无码专区 | 国产乱国产乱300精品| 国产欧美日韩另类一区| 色综合久久综合网| 免费在线观看一区二区三区| 久久精品视频一区二区| 色综合色综合色综合色综合色综合 | 久久久久久久久久久电影| 91在线视频免费91| 日韩av电影一区| 日韩美女视频一区二区| 欧美一区二区三区四区高清| 东方aⅴ免费观看久久av| 亚洲无线码一区二区三区| 欧美精品一区二区久久婷婷| 91麻豆国产在线观看| 激情都市一区二区| 亚洲图片一区二区| 国产精品成人免费精品自在线观看| 欧美日韩视频不卡| 成人app软件下载大全免费| 日韩精品色哟哟| 另类人妖一区二区av| 亚洲日本在线a| 精品入口麻豆88视频| 色狠狠av一区二区三区| 国产在线一区观看| 午夜精品久久久久久久久| 国产精品免费久久| 久久免费美女视频| 欧美精品三级在线观看| 91在线国内视频| 国产成人久久精品77777最新版本| 日韩电影在线免费| 一区二区三区美女视频| 欧美国产精品v| 欧美精品一区二区三区很污很色的 | 欧美疯狂做受xxxx富婆| av一区二区三区四区| 国产精品资源在线看| 日韩高清中文字幕一区| 一区二区久久久久| 《视频一区视频二区| 中文字幕欧美激情一区| 久久久久国产精品人| 欧美一级搡bbbb搡bbbb| 在线电影一区二区三区| 色婷婷精品久久二区二区蜜臂av | 国精品**一区二区三区在线蜜桃| 亚洲黄一区二区三区| 国产精品久久一级| 国产精品女同互慰在线看| 日本一区二区视频在线| 国产人成亚洲第一网站在线播放| 久久综合九色综合97婷婷女人| 欧美va亚洲va国产综合| 日韩欧美中文字幕精品| 欧美成人三级在线| 国产亚洲精品久| 久久精品男人的天堂| 亚洲国产精品精华液ab| 国产人成一区二区三区影院| 欧美国产成人精品| 亚洲欧洲日本在线| 亚洲精品欧美在线| 午夜精品在线看| 男女激情视频一区| 国产黄人亚洲片| 成人短视频下载| 色噜噜狠狠色综合欧洲selulu| 欧美中文字幕一区二区三区亚洲| 欧美精品18+| 久久婷婷综合激情| 亚洲欧美在线视频观看| 亚洲大片一区二区三区| 日韩经典一区二区| 国产成人在线网站| 色94色欧美sute亚洲13| 日韩一二三区视频| 中文字幕欧美日韩一区| 亚洲激情在线播放| 麻豆国产欧美日韩综合精品二区| 国产aⅴ综合色| 欧美午夜在线观看| 久久视频一区二区| 亚洲欧美另类小说| 久久99久久久久久久久久久| 成人h精品动漫一区二区三区| 日本韩国欧美在线| 精品国产在天天线2019| 亚洲精选视频免费看| 亚洲成人免费在线观看| 国产精品综合一区二区三区| 色婷婷精品久久二区二区蜜臂av | 一区二区三区丝袜| 麻豆精品视频在线观看| 国产69精品久久久久777| 欧美性色综合网| 欧美激情在线观看视频免费| 亚洲一卡二卡三卡四卡无卡久久| 91久久精品一区二区三区| 欧美成人aa大片| 亚洲一二三区视频在线观看| 国产麻豆91精品| 91麻豆精品国产自产在线| 欧美激情艳妇裸体舞| 蜜桃精品视频在线| 91蜜桃在线观看| 久久久久久久久久久久电影| 偷拍一区二区三区| 色综合色综合色综合| 久久综合九色综合欧美亚洲| 婷婷六月综合网| 欧美在线视频你懂得| 国产精品久久久久久久久免费樱桃| 免费xxxx性欧美18vr| 欧美三级视频在线| 日韩伦理av电影| 成人黄页毛片网站| 久久久久久久久久看片| 久久电影国产免费久久电影| 91精品91久久久中77777| 国产欧美一区二区精品婷婷| 久久精品国产久精国产| 欧美日韩视频在线一区二区| 日韩一区中文字幕| 99re这里只有精品视频首页| 国产欧美一区二区精品婷婷| 狠狠色综合播放一区二区| 日韩一区二区精品在线观看| 亚洲电影激情视频网站| 在线精品视频小说1| 亚洲激情五月婷婷| 在线免费不卡电影| 一区二区三区国产| 在线观看免费视频综合| 亚洲在线观看免费| 欧美日韩一区高清| 天天操天天综合网| 日韩一区二区三区电影 | 国产一区在线观看视频| 日韩免费性生活视频播放| 免费av成人在线| 久久综合久久综合久久综合|