Added ede-bell-conf, a tool to configure system bell (that annoying beep thing)

Rest are changes so can nicely be compiled on freebsd
Also, some changes are in coding style
This commit is contained in:
Sanel Zukan
2009-02-26 11:15:27 +00:00
parent e051472475
commit c7c8fc92ea
13 changed files with 280 additions and 129 deletions

16
ede-bell-conf/Jamfile Normal file
View File

@@ -0,0 +1,16 @@
#
# $Id$
#
# Part of Equinox Desktop Environment (EDE).
# Copyright (c) 2009 EDE Authors.
#
# This program is licensed under terms of the
# GNU General Public License version 2 or newer.
# See COPYING for details.
SubDir TOP ede-bell-conf ;
SOURCE = ede-bell-conf.cpp ;
EdeProgram ede-bell-conf : $(SOURCE) ;
TranslationStrings locale : $(SOURCE) ;

View File

@@ -0,0 +1,84 @@
/*
* $Id$
*
* ede-bell-conf, a tool to configure system bell
* Part of Equinox Desktop Environment (EDE).
* Copyright (c) 2009 EDE Authors.
*
* This program is licensed under terms of the
* GNU General Public License version 2 or newer.
* See COPYING for details.
*/
#include <FL/x.H>
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Value_Slider.H>
#include <edelib/Window.h>
#include <edelib/Nls.h>
static Fl_Value_Slider* vol_slide;
static Fl_Value_Slider* pitch_slide;
static Fl_Value_Slider* dur_slide;
static edelib::Window* win;
static void set_values(void) {
unsigned long v = KBBellPercent | KBBellPitch | KBBellDuration;
XKeyboardControl kc;
kc.bell_percent = (unsigned int)vol_slide->value();
kc.bell_pitch = (unsigned int)pitch_slide->value();
kc.bell_duration = (unsigned int)dur_slide->value();
XChangeKeyboardControl(fl_display, v, &kc);
}
static void cancel_cb(Fl_Widget*, void*) {
win->hide();
}
static void ok_cb(Fl_Widget*, void*) {
set_values();
win->hide();
}
static void test_cb(Fl_Widget*, void*) {
set_values();
XBell(fl_display, 0);
}
int main(int argc, char **argv) {
win = new edelib::Window(330, 210, _("System bell configuration"));
win->begin();
vol_slide = new Fl_Value_Slider(10, 30, 310, 25, _("Volume"));
vol_slide->type(5);
vol_slide->step(1);
vol_slide->maximum(100);
vol_slide->align(FL_ALIGN_TOP);
pitch_slide = new Fl_Value_Slider(10, 80, 310, 25, _("Pitch"));
pitch_slide->type(5);
pitch_slide->step(1);
pitch_slide->minimum(100);
pitch_slide->maximum(1000);
pitch_slide->align(FL_ALIGN_TOP);
dur_slide = new Fl_Value_Slider(10, 130, 310, 25, _("Duration"));
dur_slide->type(5);
dur_slide->step(1);
dur_slide->minimum(0);
dur_slide->maximum(1000);
dur_slide->align(FL_ALIGN_TOP);
Fl_Button* ok = new Fl_Button(135, 175, 90, 25, _("&OK"));
ok->callback(ok_cb);
Fl_Button* cancel = new Fl_Button(230, 175, 90, 25, _("&Cancel"));
cancel->callback(cancel_cb);
Fl_Button* test = new Fl_Button(10, 175, 90, 25, _("&Test"));
test->callback(test_cb);
win->end();
win->show(argc, argv);
return Fl::run();
}

View File

@@ -0,0 +1,36 @@
# data file for the Fltk User Interface Designer (fluid)
version 1.0108
header_name {.h}
code_name {.cxx}
Function {} {open
} {
Fl_Window {} {
label {System bell configuration} open
xywh {428 267 330 210} type Double visible
} {
Fl_Button {} {
label {&OK}
xywh {135 175 90 25}
}
Fl_Button {} {
label {&Cancel} selected
xywh {230 175 90 25}
}
Fl_Button {} {
label {&Test}
xywh {10 175 90 25}
}
Fl_Value_Slider {} {
label Volume
xywh {10 30 310 25} type {Horz Knob} align 1 step 0.01 textsize 12
}
Fl_Value_Slider {} {
label Pitch
xywh {10 80 310 25} type {Horz Knob} align 1 step 0.01 textsize 12
}
Fl_Value_Slider {} {
label Duration
xywh {10 130 310 25} type {Horz Knob} align 1 step 0.01 textsize 12
}
}
}