00001 #include "cdripwindow.h"
00002 #include "mwindow.inc"
00003
00004 #include <string.h>
00005
00006 #include <libintl.h>
00007 #define _(String) gettext(String)
00008 #define gettext_noop(String) String
00009 #define N_(String) gettext_noop (String)
00010
00011 CDRipWindow::CDRipWindow(CDRipMain *cdripper, int x, int y)
00012 : BC_Window(PROGRAM_NAME ": CD Ripper",
00013 x,
00014 y,
00015 450,
00016 192,
00017 450,
00018 192,
00019 0,
00020 0,
00021 1)
00022 {
00023 this->cdripper = cdripper;
00024 }
00025
00026 CDRipWindow::~CDRipWindow()
00027 {
00028 }
00029
00030 int CDRipWindow::create_objects()
00031 {
00032 int y = 10, x = 10;
00033 add_tool(new BC_Title(x, y, _("Select the range to transfer:"))); y += 25;
00034 add_tool(new BC_Title(x, y, _("Track"))); x += 70;
00035 add_tool(new BC_Title(x, y, _("Min"))); x += 70;
00036 add_tool(new BC_Title(x, y, _("Sec"))); x += 100;
00037
00038 add_tool(new BC_Title(x, y, _("Track"))); x += 70;
00039 add_tool(new BC_Title(x, y, _("Min"))); x += 70;
00040 add_tool(new BC_Title(x, y, _("Sec"))); x += 100;
00041
00042 x = 10; y += 25;
00043 add_tool(track1 = new CDRipTextValue(this, &(cdripper->track1), x, y, 50));
00044 x += 70;
00045 add_tool(min1 = new CDRipTextValue(this, &(cdripper->min1), x, y, 50));
00046 x += 70;
00047 add_tool(sec1 = new CDRipTextValue(this, &(cdripper->sec1), x, y, 50));
00048 x += 100;
00049
00050 add_tool(track2 = new CDRipTextValue(this, &(cdripper->track2), x, y, 50));
00051 x += 70;
00052 add_tool(min2 = new CDRipTextValue(this, &(cdripper->min2), x, y, 50));
00053 x += 70;
00054 add_tool(sec2 = new CDRipTextValue(this, &(cdripper->sec2), x, y, 50));
00055
00056 x = 10; y += 30;
00057 add_tool(new BC_Title(x, y, _("From"), LARGEFONT, RED));
00058 x += 240;
00059 add_tool(new BC_Title(x, y, _("To"), LARGEFONT, RED));
00060
00061 x = 10; y += 35;
00062 add_tool(new BC_Title(x, y, _("CD Device:")));
00063 x += 100;
00064 add_tool(device = new CDRipWindowDevice(this, cdripper->device, x, y, 200));
00065
00066 x = 10; y += 35;
00067 add_tool(new BC_OKButton(this));
00068 x += 300;
00069 add_tool(new BC_CancelButton(this));
00070 show_window();
00071 flush();
00072 return 0;
00073 }
00074
00075
00076
00077
00078
00079
00080
00081
00082 CDRipTextValue::CDRipTextValue(CDRipWindow *window, int *output, int x, int y, int w)
00083 : BC_TextBox(x, y, w, 1, *output)
00084 {
00085 this->output = output;
00086 this->window = window;
00087 }
00088
00089 CDRipTextValue::~CDRipTextValue()
00090 {
00091 }
00092
00093 int CDRipTextValue::handle_event()
00094 {
00095 *output = atol(get_text());
00096 return 1;
00097 }
00098
00099 CDRipWindowDevice::CDRipWindowDevice(CDRipWindow *window, char *device, int x, int y, int w)
00100 : BC_TextBox(x, y, w, 1, device)
00101 {
00102 this->window = window;
00103 this->device = device;
00104 }
00105
00106 CDRipWindowDevice::~CDRipWindowDevice()
00107 {
00108 }
00109
00110 int CDRipWindowDevice::handle_event()
00111 {
00112 strcpy(device, get_text());
00113 return 1;
00114 }