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

📄 gtk.c

📁 aumix-2.8 源碼下載
💻 C
📖 第 1 页 / 共 2 页
字号:
/* $Aumix: aumix/src/gtk.c,v 1.8 2002/10/29 21:27:52 trevor Exp $ * * gtk.c:  GTK+ interface for aumix * (c) 1998-2001 the authors (see AUTHORS file) * * based on: * Freestyle DJ sample playing tool * Revision 1.11  1998/06/18 18:17:39 * (C) 1998 Pete Hollobon hollobon@bigfoot.com * http://www.york.ac.uk/~ph116/freestyle.html * * also based on: * gmixer 0.98 (22.2.1999) * Copyleft (C) 1998, 1999 Sergey Kiselev * sergey@junior.technion.ac.il * * also based on: * filesel.c and pixmap.c examples * GTK v1.2 Tutorial * Tony Gale <gale@gtk.org>, Ian Main <imain@gtk.org> * February 23rd, 2000 * * This file is part of aumix. * * Aumix 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. * * Aumix 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 * aumix; if not, write to the Free Software Foundation, Inc., 59 Temple Place, * Suite 330, Boston, MA 02111-1307, USA. */#include "common.h"#if defined (HAVE_GTK1) || defined (HAVE_GTK)#include "gtk.h"#include "../data/aumix.xpm"#include "record.xpm"#include "play.xpm"#include "interactive.h"#include <signal.h>		/* SIGALRM */void            SaveSettingsGTK(void){	(void) SaveSettings();}void            LoadSettingsGTK(void){	(void) LoadSettings();}void            HideShowNumbersGTK(void){	int             ii;	if (valuesvisible) {		for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {			if ((1 << ii) & devmask && visible[ii]) {				gtk_scale_set_draw_value(GTK_SCALE(levels[ii]), FALSE);				if ((1 << ii) & stereodevs)					gtk_scale_set_draw_value(GTK_SCALE(baltracks[ii]), FALSE);			}		}		gtk_widget_hide(labelzero);		gtk_widget_hide(labelcent);	} else {		for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {			if ((1 << ii) & devmask && visible[ii]) {				gtk_scale_set_draw_value(GTK_SCALE(levels[ii]), TRUE);				if ((1 << ii) & stereodevs)					gtk_scale_set_draw_value(GTK_SCALE(baltracks[ii]), TRUE);			}		}		gtk_widget_show(labelzero);		gtk_widget_show(labelcent);	}	valuesvisible = !valuesvisible;}void            HideShowBalancesGTK(void){	int             ii;	if (balancevisible) {		gtk_widget_hide(labelbalance);		gtk_widget_hide(labelleft);		gtk_widget_hide(labelright);		for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {			if (visible[ii] && (1 << ii) & stereodevs)				gtk_widget_hide(baltracks[ii]);		}	} else {		gtk_widget_show(labelbalance);		gtk_widget_show(labelleft);		gtk_widget_show(labelright);		for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {			if (visible[ii] && (1 << ii) & stereodevs)				gtk_widget_show(baltracks[ii]);		}	}	balancevisible = !balancevisible;}void            HideShowMenuGTK(GtkWidget * menu){	if (menuvisible) {		gtk_widget_hide(GTK_WIDGET(menu));	} else {		gtk_widget_show(GTK_WIDGET(menu));	}	menuvisible = !menuvisible;}void            HideShowChannelGTK(int device){	if (visible[device]) {		/* Hide the record/play button, if any. */		if ((1 << device) & recmask)			gtk_widget_hide(GTK_WIDGET(rpbuttons[device]));		/* Hide the level track. */		gtk_scale_set_draw_value(GTK_SCALE(levels[device]), FALSE);		gtk_widget_hide(GTK_WIDGET(levels[device]));/* Hide the name of the channel. */		gtk_widget_hide(channellabel[device]);		/* Hide the balance track, if any. */		if ((1 << device) & stereodevs) {/* Hide the balance track, if any. */			gtk_scale_set_draw_value(GTK_SCALE(baltracks[device]), FALSE);			gtk_widget_hide(baltracks[device]);		}	} else {		/* Show the record/play button, if any. */		if ((1 << device) & recmask)			gtk_widget_show(GTK_WIDGET(rpbuttons[device]));		/* Show the level track. */		gtk_scale_set_draw_value(GTK_SCALE(levels[device]), TRUE);		gtk_widget_show(GTK_WIDGET(levels[device]));		/* Show the name of the channel. */		gtk_widget_show(channellabel[device]);		/* Show the balance track, if any. */		if ((1 << device) & stereodevs && balancevisible) {			/* Show the balance track, if any. */			gtk_scale_set_draw_value(GTK_SCALE(baltracks[device]), TRUE);			gtk_widget_show(baltracks[device]);		}	}/* Toggle visibility flag for the device. */	visible[device] = !visible[device];}void            AdjustLevelGTK(int device){	AdjustLevel(device, 0, adjustment[device]->value);	return;}void            AdjustBalanceGTK(int device){	AdjustBalance(device, 0, balance[device]->value);	return;}void            InitScreenGTK(void){	GdkColormap    *colormap;	GdkBitmap      *bitmap;	GdkPixmap      *icon_pixmap;	GtkStyle       *style;	GtkWidget      *window;	GtkWidget      *mainbox;	GtkWidget      *filemenu;	GtkWidget      *filemenuitems[5];	GtkWidget      *viewmenu;	GtkWidget      *viewmenuitems[SOUND_MIXER_NRDEVICES + 3];	GtkWidget      *separator;	GtkWidget      *mutemenu;	GtkWidget      *muteallitem;	GtkWidget      *menubar;	GtkWidget      *menubarlabel;	GtkAccelGroup  *accel;	GtkWidget      *labelrec;	GtkWidget      *labellevel;	GtkWidget      *control_box;	int             balset, max, y, tmp, left, right;	long int        ii;	GtkSignalFunc   filefuncs[] = {&LoadSettingsGTK, &SaveSettingsGTK, &LoadDialog, &SaveDialog, &CloseScreenGTK};	char           *filemenutext[] = {LOCAL_TEXT_NOOP("Load"), LOCAL_TEXT_NOOP("Save"), LOCAL_TEXT_NOOP("Load From"), LOCAL_TEXT_NOOP("Save To"), LOCAL_TEXT_NOOP("Quit")};	char           *fileacceltext[5] = {LOCAL_TEXT_NOOP("l"), LOCAL_TEXT_NOOP("s"), LOCAL_TEXT_NOOP("f"), LOCAL_TEXT_NOOP("t"), LOCAL_TEXT_NOOP("q")};	char           *viewmenutext[] = {LOCAL_TEXT_NOOP("Menu"), LOCAL_TEXT_NOOP("Balance"), LOCAL_TEXT_NOOP("Numbers")};	char           *viewacceltext[] = {LOCAL_TEXT_NOOP("v"), LOCAL_TEXT_NOOP("b"), LOCAL_TEXT_NOOP("n")};	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);	gtk_window_set_title(GTK_WINDOW(window), "aumix");	gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL);	gtk_container_border_width(GTK_CONTAINER(window), BORDER);	mainbox = gtk_vbox_new(FALSE, BORDER);	gtk_widget_show(mainbox);	gtk_container_add(GTK_CONTAINER(window), mainbox);	accel = gtk_accel_group_new();#ifdef HAVE_GTK1	gtk_accel_group_attach(accel, GTK_OBJECT(window));#else	gtk_window_add_accel_group(GTK_WINDOW(window), accel);#endif	menubar = gtk_menu_bar_new();	gtk_widget_show(menubar);	gtk_box_pack_start(GTK_BOX(mainbox), menubar, FALSE, TRUE, 0);	filemenu = gtk_menu_new();	mutemenu = gtk_menu_new();	viewmenu = gtk_menu_new();	for (ii = 0; ii < 5; ii++) {		filemenuitems[ii] = gtk_menu_item_new_with_label(LOCAL_TEXT(filemenutext[ii]));		gtk_menu_append(GTK_MENU(filemenu), filemenuitems[ii]);		gtk_widget_show(filemenuitems[ii]);		gtk_widget_add_accelerator(filemenuitems[ii], "activate", accel, *LOCAL_TEXT(fileacceltext[ii]), 0, GTK_ACCEL_VISIBLE);		gtk_signal_connect(GTK_OBJECT(filemenuitems[ii]), "activate", filefuncs[ii], NULL);	}	for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {		visible[ii] = TRUE;		if ((1 << ii) & (devmask | recmask)) {			viewmenuitems[ii] = gtk_check_menu_item_new_with_label(LOCAL_TEXT(dev_label[ii]));			gtk_menu_append(GTK_MENU(viewmenu), viewmenuitems[ii]);			gtk_widget_show(viewmenuitems[ii]);			gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(viewmenuitems[ii]), TRUE);		}	}	separator = gtk_menu_item_new();	gtk_widget_show(separator);	gtk_menu_append(GTK_MENU(viewmenu), separator);	menuvisible = TRUE;	balancevisible = TRUE;

⌨️ 快捷键说明

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