⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unibar.c

📁 elinks下lynx是最重要的二个文本浏览器, 在linux下非常实用, elinks也是gentoo安装过程中默认使用的浏览器, 这是elinks源代码
💻 C
字号:
/* The SpiderMonkey location and history objects implementation. */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <stdio.h>#include <stdlib.h>#include <string.h>#include "elinks.h"#include "ecmascript/spidermonkey/util.h"#include "bfu/dialog.h"#include "cache/cache.h"#include "cookies/cookies.h"#include "dialogs/menu.h"#include "dialogs/status.h"#include "document/html/frames.h"#include "document/document.h"#include "document/forms.h"#include "document/view.h"#include "ecmascript/ecmascript.h"#include "ecmascript/spidermonkey/unibar.h"#include "intl/gettext/libintl.h"#include "main/select.h"#include "osdep/newwin.h"#include "osdep/sysname.h"#include "protocol/http/http.h"#include "protocol/uri.h"#include "session/history.h"#include "session/location.h"#include "session/session.h"#include "session/task.h"#include "terminal/tab.h"#include "terminal/terminal.h"#include "util/conv.h"#include "util/memory.h"#include "util/string.h"#include "viewer/text/draw.h"#include "viewer/text/form.h"#include "viewer/text/link.h"#include "viewer/text/vs.h"static JSBool unibar_get_property(JSContext *ctx, JSObject *obj, jsval id, jsval *vp);static JSBool unibar_set_property(JSContext *ctx, JSObject *obj, jsval id, jsval *vp);const JSClass menubar_class = {	"menubar",	JSCLASS_HAS_PRIVATE,	JS_PropertyStub, JS_PropertyStub,	unibar_get_property, unibar_set_property,	JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub};const JSClass statusbar_class = {	"statusbar",	JSCLASS_HAS_PRIVATE,	JS_PropertyStub, JS_PropertyStub,	unibar_get_property, unibar_set_property,	JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub};enum unibar_prop { JSP_UNIBAR_VISIBLE };const JSPropertySpec unibar_props[] = {	{ "visible",	JSP_UNIBAR_VISIBLE,	JSPROP_ENUMERATE },	{ NULL }};static JSBoolunibar_get_property(JSContext *ctx, JSObject *obj, jsval id, jsval *vp){	JSObject *parent = JS_GetParent(ctx, obj);	struct view_state *vs = JS_GetPrivate(ctx, parent);	struct document_view *doc_view = vs->doc_view;	struct session_status *status = &doc_view->session->status;	unsigned char *bar = JS_GetPrivate(ctx, obj);	if (!JSVAL_IS_INT(id))		return JS_TRUE;	switch (JSVAL_TO_INT(id)) {	case JSP_UNIBAR_VISIBLE:#define unibar_fetch(bar) \	boolean_to_jsval(ctx, vp, status->force_show_##bar##_bar >= 0 \	          ? status->force_show_##bar##_bar \	          : status->show_##bar##_bar)		switch (*bar) {		case 's':			unibar_fetch(status);			break;		case 't':			unibar_fetch(title);			break;		default:			boolean_to_jsval(ctx, vp, 0);			break;		}#undef unibar_fetch		break;	default:		INTERNAL("Invalid ID %d in unibar_get_property().", JSVAL_TO_INT(id));		break;	}	return JS_TRUE;}static JSBoolunibar_set_property(JSContext *ctx, JSObject *obj, jsval id, jsval *vp){	JSObject *parent = JS_GetParent(ctx, obj);	struct view_state *vs = JS_GetPrivate(ctx, parent);	struct document_view *doc_view = vs->doc_view;	struct session_status *status = &doc_view->session->status;	unsigned char *bar = JS_GetPrivate(ctx, obj);	if (!JSVAL_IS_INT(id))		return JS_TRUE;	switch (JSVAL_TO_INT(id)) {	case JSP_UNIBAR_VISIBLE:		switch (*bar) {		case 's':			status->force_show_status_bar = jsval_to_boolean(ctx, vp);			break;		case 't':			status->force_show_title_bar = jsval_to_boolean(ctx, vp);			break;		default:			break;		}		register_bottom_half(update_status, NULL);		break;	default:		INTERNAL("Invalid ID %d in unibar_set_property().", JSVAL_TO_INT(id));		return JS_TRUE;	}	return JS_TRUE;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -