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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? skin.c

?? Aqualung is an advanced music player primarily targeted for the GNU/Linux operating system, but als
?? C
字號(hào):
/*                                                     -*- linux-c -*-    Copyright (C) 2004 Tom Szilagyi    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., 675 Mass Ave, Cambridge, MA 02139, USA.    $Id: skin.c,v 1.11 2006/08/11 11:25:49 peterszilagyi Exp $*/#include <gtk/gtk.h>#include <gdk/gdkkeysyms.h>#include <dirent.h>#include <stdio.h>#include <string.h>#include <sys/stat.h>#include <errno.h>#include "common.h"#include "gui_main.h"#include "options.h"#include "i18n.h"#include "skin.h"extern options_t options;extern GtkWidget * main_window;char * pdir;GtkWidget * skin_window;GtkListStore * skin_store;GtkTreeSelection * skin_select;static intfilter(const struct dirent * de) {	struct stat st_file;	char dirname[MAXLEN];	if (de->d_name[0] == '.') {		return 0;	}	snprintf(dirname, MAXLEN-1, "%s/%s", pdir, de->d_name);	if (stat(dirname, &st_file) == -1) {		fprintf(stderr,			"error %s: skin.c/filter(): stat() failed on %s [likely cause: nonexistent file]\n",			strerror(errno), dirname);		return 0;	}	return S_ISDIR(st_file.st_mode);}static gintcancel(GtkWidget * widget, gpointer data) {	gtk_widget_destroy(skin_window);	return TRUE;}static gintapply(GtkWidget * widget, gpointer data) {	GtkTreeIter iter;	char * str;	int i = 0;	do {		gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(skin_store), &iter, NULL, i++);	} while (!gtk_tree_selection_iter_is_selected(skin_select, &iter));		gtk_tree_model_get(GTK_TREE_MODEL(skin_store), &iter, 1, &str, -1);	gtk_widget_destroy(skin_window);	strcpy(options.skin, str);	g_free(str);	change_skin(options.skin);	return TRUE;}static gintskin_window_key_pressed(GtkWidget * widget, GdkEventKey * kevent) {	switch (kevent->keyval) {	case GDK_q:	case GDK_Q:	case GDK_Escape:		cancel(NULL, NULL);		return TRUE;		break;        case GDK_Return:	case GDK_KP_Enter:		apply(NULL, NULL);                return TRUE;		break;	}	return FALSE;}voidcreate_skin_window() {	GtkWidget * vbox;	GtkWidget * viewp;	GtkWidget * scrolledwin;	GtkWidget * skin_list;	GtkTreeIter iter;	GtkTreeViewColumn *column;	GtkCellRenderer * renderer;	GtkWidget * hbuttonbox;	GtkWidget * apply_btn;	GtkWidget * cancel_btn;	struct dirent ** ent;	int n;	skin_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);	gtk_window_set_transient_for(GTK_WINDOW(skin_window), GTK_WINDOW(main_window));	gtk_widget_set_size_request(skin_window, 250, 240);        gtk_window_set_title(GTK_WINDOW(skin_window), _("Skin chooser"));	gtk_window_set_position(GTK_WINDOW(skin_window), GTK_WIN_POS_CENTER);	gtk_window_set_modal(GTK_WINDOW(skin_window), TRUE);        gtk_container_set_border_width(GTK_CONTAINER(skin_window), 2);        g_signal_connect(G_OBJECT(skin_window), "key_press_event",			 G_CALLBACK(skin_window_key_pressed), NULL);	vbox = gtk_vbox_new(FALSE, 0);	gtk_container_add(GTK_CONTAINER(skin_window), vbox);	viewp = gtk_viewport_new(NULL, NULL);	gtk_box_pack_start(GTK_BOX(vbox), viewp, TRUE, TRUE, 0);		scrolledwin = gtk_scrolled_window_new(NULL, NULL);	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),				       GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);	gtk_container_add(GTK_CONTAINER(viewp), scrolledwin);	skin_store = gtk_list_store_new(2,					G_TYPE_STRING,  /* skin name */					G_TYPE_STRING); /* path */        skin_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(skin_store));	gtk_tree_view_set_enable_search(GTK_TREE_VIEW(skin_list), FALSE);        skin_select = gtk_tree_view_get_selection(GTK_TREE_VIEW(skin_list));	renderer = gtk_cell_renderer_text_new();	column = gtk_tree_view_column_new_with_attributes(_("Available skins"), renderer, "text", 0, NULL);        gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(skin_store), 0, GTK_SORT_ASCENDING);  	gtk_tree_view_append_column(GTK_TREE_VIEW(skin_list), column);	gtk_container_add(GTK_CONTAINER(scrolledwin), skin_list);	/* per-user skins */	pdir = options.confdir;	n = scandir(options.confdir, &ent, filter, alphasort);	if (n >= 0) {		int c;		char path[MAXLEN];		for (c = 0; c < n; ++c) {			gtk_list_store_append(skin_store, &iter);			snprintf(path, MAXLEN - 1, "%s/%s", options.confdir, ent[c]->d_name);			gtk_list_store_set(skin_store, &iter, 0, ent[c]->d_name, 1, path, -1);		}	}	/* system wide skins */	pdir = AQUALUNG_SKINDIR;	n = scandir(AQUALUNG_SKINDIR, &ent, filter, alphasort);	if (n >= 0) {		int c;		char path[MAXLEN];		for (c = 0; c < n; ++c) {			int found = 0;			if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(skin_store), &iter)) {				int i = 0;				char * str;				do {					gtk_tree_model_get(GTK_TREE_MODEL(skin_store), &iter, 0, &str, -1);					if (strcmp(str, ent[c]->d_name) == 0) {						found = 1;					}					g_free(str);									} while (i++, gtk_tree_model_iter_next(GTK_TREE_MODEL(skin_store), &iter));			}			if (!found) {				gtk_list_store_append(skin_store, &iter);				snprintf(path, MAXLEN - 1, "%s/%s", AQUALUNG_SKINDIR, ent[c]->d_name);				gtk_list_store_set(skin_store, &iter, 0, ent[c]->d_name, 1, path, -1);			}		}	}	hbuttonbox = gtk_hbutton_box_new();	gtk_box_pack_end(GTK_BOX(vbox), hbuttonbox, FALSE, TRUE, 0);	gtk_button_box_set_layout(GTK_BUTTON_BOX(hbuttonbox), GTK_BUTTONBOX_END);        gtk_box_set_spacing(GTK_BOX(hbuttonbox), 8);        gtk_container_set_border_width(GTK_CONTAINER(hbuttonbox), 3);        apply_btn = gtk_button_new_from_stock (GTK_STOCK_APPLY); 	g_signal_connect(apply_btn, "clicked", G_CALLBACK(apply), NULL);  	gtk_container_add(GTK_CONTAINER(hbuttonbox), apply_btn);           cancel_btn = gtk_button_new_from_stock (GTK_STOCK_CANCEL); 	g_signal_connect(cancel_btn, "clicked", G_CALLBACK(cancel), NULL);  	gtk_container_add(GTK_CONTAINER(hbuttonbox), cancel_btn);   	gtk_widget_show_all(skin_window);	if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(skin_store), &iter)) {		int i = 0;		char * str;				do {			gtk_tree_model_get(GTK_TREE_MODEL(skin_store), &iter, 1, &str, -1);			if (strcmp(str, options.skin) == 0) {				gtk_tree_selection_select_iter(skin_select, &iter);				gtk_tree_view_set_cursor(GTK_TREE_VIEW(skin_list),					 gtk_tree_model_get_path(GTK_TREE_MODEL(skin_store), &iter),					 NULL, FALSE);			}			g_free(str);		} while (i++, gtk_tree_model_iter_next(GTK_TREE_MODEL(skin_store), &iter));	}}// vim: shiftwidth=8:tabstop=8:softtabstop=8 :  

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人污污视频在线观看| 在线观看国产日韩| 亚洲成人激情综合网| 依依成人精品视频| 91精品婷婷国产综合久久性色| 成人91在线观看| 麻豆精品视频在线观看免费| 亚洲人精品午夜| 国产日韩欧美不卡| 日韩欧美国产三级电影视频| 欧美这里有精品| 不卡视频在线观看| 国内欧美视频一区二区| 亚洲成人黄色小说| 亚洲精品美腿丝袜| 国产精品乱码久久久久久| 日韩欧美你懂的| 欧美久久久影院| 色天使久久综合网天天| 国产成人自拍网| 久久国产精品99久久久久久老狼| 亚洲午夜激情网站| 亚洲欧美国产高清| 中文字幕一区二区三区在线观看 | 欧美v国产在线一区二区三区| 色综合天天性综合| voyeur盗摄精品| 国产激情精品久久久第一区二区| 蜜臀久久久99精品久久久久久| 亚洲一二三专区| 一区二区三区美女视频| 最新高清无码专区| 最新成人av在线| 亚洲人吸女人奶水| 亚洲男人的天堂在线观看| 亚洲色图欧美激情| 亚洲三级在线免费观看| 亚洲三级在线免费| 一区二区三区精品在线| 一区二区三区日韩欧美| 国产精品一区二区免费不卡| 久久精品国产秦先生| 免费在线视频一区| 久久99国产精品久久99| 韩国毛片一区二区三区| 久久av资源网| 国产福利91精品一区二区三区| 国产成人日日夜夜| 99久久免费精品| 91亚洲精品一区二区乱码| 99久久久精品免费观看国产蜜| av一二三不卡影片| 色诱视频网站一区| 欧美午夜精品电影| 91精品国产综合久久香蕉的特点 | 7777精品伊人久久久大香线蕉完整版 | 亚洲欧美日韩国产手机在线| 亚洲欧美日韩综合aⅴ视频| 一区二区三区美女| 日韩精品福利网| 国产在线播放一区三区四| 高清shemale亚洲人妖| 91在线视频网址| 欧美日韩国产色站一区二区三区| 8v天堂国产在线一区二区| 久久综合色8888| 成人免费小视频| 午夜婷婷国产麻豆精品| 精彩视频一区二区三区| 成人av免费在线| 欧美日韩国产成人在线91| 精品国产一区二区三区久久久蜜月| 国产三级精品三级| 亚洲女与黑人做爰| 日韩电影免费在线看| 国产成人免费视| 欧美又粗又大又爽| 2020日本不卡一区二区视频| 亚洲欧美另类综合偷拍| 蜜臀av亚洲一区中文字幕| 国产福利91精品一区| 欧美三区在线观看| 国产亚洲综合av| 午夜精品久久久久久| 国产a区久久久| 欧美精品视频www在线观看| 久久九九国产精品| 五月综合激情日本mⅴ| 国产99久久久国产精品潘金网站| 欧美在线999| 中文字幕av不卡| 日韩激情av在线| 99久久久精品免费观看国产蜜| 日韩三级视频在线看| 亚洲欧洲精品成人久久奇米网| 日韩国产精品久久久久久亚洲| 成人av网站在线观看| 91精品国产欧美一区二区| 亚洲日本在线看| 狠狠色丁香婷综合久久| 精品视频123区在线观看| 国产精品天美传媒沈樵| 久热成人在线视频| 在线观看日韩一区| 国产精品视频九色porn| 久久精品国产精品亚洲精品 | 欧美videossexotv100| 亚洲精品国产品国语在线app| 韩国精品在线观看| 欧美精品99久久久**| 亚洲日本丝袜连裤袜办公室| 国产资源精品在线观看| 7777精品伊人久久久大香线蕉完整版| 国产免费久久精品| 狠狠色综合播放一区二区| 在线播放91灌醉迷j高跟美女| 亚洲欧美激情在线| 成人国产精品免费观看视频| 精品国产髙清在线看国产毛片| 午夜精品视频一区| 日本高清不卡视频| 亚洲色图.com| 91网站最新地址| 一区视频在线播放| 成人免费视频免费观看| 国产视频一区在线播放| 国产麻豆视频一区二区| 精品国产乱码久久久久久图片 | 中文字幕一区二区视频| 粉嫩绯色av一区二区在线观看| xvideos.蜜桃一区二区| 精品午夜久久福利影院| 精品久久五月天| 国产伦理精品不卡| 国产亚洲精品aa午夜观看| 国产激情精品久久久第一区二区| 久久久久久久久久看片| 国产一区亚洲一区| 国产日韩亚洲欧美综合| 丰满放荡岳乱妇91ww| 中文字幕制服丝袜一区二区三区| 成人黄色免费短视频| 亚洲欧洲av在线| 色综合天天综合网天天看片| 亚洲猫色日本管| 在线欧美日韩国产| 日韩av一二三| 精品国产一区二区精华| 国产91在线观看丝袜| 国产精品进线69影院| 日本精品视频一区二区三区| 亚洲一区二区三区视频在线| 欧美久久久久中文字幕| 欧美aa在线视频| 久久精品亚洲精品国产欧美 | 欧美成人一区二区三区片免费| 久久精品国产精品青草| 国产色爱av资源综合区| 99re视频这里只有精品| 亚洲午夜在线电影| 日韩欧美美女一区二区三区| 粉嫩高潮美女一区二区三区| 亚洲日本青草视频在线怡红院| 精品视频1区2区| 国内成人免费视频| 亚洲视频一区在线观看| 4438x亚洲最大成人网| 国产美女久久久久| 亚洲精品国产第一综合99久久| 欧美高清视频一二三区 | 亚洲高清免费视频| 日韩视频一区二区| av网站免费线看精品| 三级影片在线观看欧美日韩一区二区 | 91精品福利在线一区二区三区| 国产乱码一区二区三区| 一区二区在线看| 精品国产露脸精彩对白| 91黄色免费观看| 国内久久婷婷综合| 亚洲一区二区欧美| 国产亚洲欧美日韩在线一区| 欧美在线你懂的| 国产精品一区二区三区99| 亚洲一区成人在线| 欧美激情在线观看视频免费| 精品视频全国免费看| 丁香婷婷综合激情五月色| 日精品一区二区| 日韩一区欧美一区| 日韩一区二区三区免费观看| hitomi一区二区三区精品| 精品在线一区二区| 亚洲最大成人综合| 国产色爱av资源综合区| 91精品免费在线| 色8久久人人97超碰香蕉987| 国产一区视频网站| 免费高清在线视频一区·| 亚洲精品日韩一|