Make sure all strings can be localized in the dialogs.
Move the "preview" button over so there is room for localization. Fix the order of buttons in convenience dialogs. Update "ask" to use the fl_input function. Fix 4-bit BMP file loading. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2608 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
047c32c334
commit
ec494401c1
3
CHANGES
3
CHANGES
@ -1,5 +1,8 @@
|
||||
CHANGES IN FLTK 1.1.0
|
||||
|
||||
- FLTK convenience dialogs put the buttons in the wrong
|
||||
order.
|
||||
- Fl_BMP_Image didn't load 4-bit BMP files properly.
|
||||
- Minor tweeks to the WIN32 DLL support.
|
||||
- Fl_Text_Display::resize() could go into an infinite
|
||||
loop if the buffer is emptied.
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_ask.H,v 1.7.2.4.2.4 2002/03/23 15:35:08 easysw Exp $"
|
||||
// "$Id: fl_ask.H,v 1.7.2.4.2.5 2002/08/30 16:58:16 easysw Exp $"
|
||||
//
|
||||
// Standard dialog header file for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -58,9 +58,10 @@ extern FL_EXPORT const char* fl_no;
|
||||
extern FL_EXPORT const char* fl_yes;
|
||||
extern FL_EXPORT const char* fl_ok;
|
||||
extern FL_EXPORT const char* fl_cancel;
|
||||
extern FL_EXPORT const char* fl_close;
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: fl_ask.H,v 1.7.2.4.2.4 2002/03/23 15:35:08 easysw Exp $".
|
||||
// End of "$Id: fl_ask.H,v 1.7.2.4.2.5 2002/08/30 16:58:16 easysw Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_BMP_Image.cxx,v 1.1.2.9 2002/08/09 01:09:48 easysw Exp $"
|
||||
// "$Id: Fl_BMP_Image.cxx,v 1.1.2.10 2002/08/30 16:58:16 easysw Exp $"
|
||||
//
|
||||
// Fl_BMP_Image routines.
|
||||
//
|
||||
@ -239,24 +239,27 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read
|
||||
// Get a new color as needed...
|
||||
repcount --;
|
||||
|
||||
// Get the next color byte as needed...
|
||||
if (color < 0) color = getc(fp);
|
||||
|
||||
// Extract the next pixel...
|
||||
if (bit == 0xf0) {
|
||||
temp = (color >> 4) & 15;
|
||||
bit = 0x0f;
|
||||
} else {
|
||||
temp = color & 15;
|
||||
bit = 0xf0;
|
||||
}
|
||||
|
||||
// printf("temp = %d\n", temp);
|
||||
// Get the next color byte as needed...
|
||||
if (color < 0) temp = getc(fp);
|
||||
else temp = color;
|
||||
|
||||
// Copy the color value...
|
||||
*ptr++ = colormap[temp][2];
|
||||
*ptr++ = colormap[temp][1];
|
||||
*ptr++ = colormap[temp][0];
|
||||
*ptr++ = colormap[(temp >> 4) & 15][2];
|
||||
*ptr++ = colormap[(temp >> 4) & 15][1];
|
||||
*ptr++ = colormap[(temp >> 4) & 15][0];
|
||||
|
||||
bit = 0x0f;
|
||||
} else {
|
||||
bit = 0xf0;
|
||||
|
||||
// Copy the color value...
|
||||
*ptr++ = colormap[temp & 15][2];
|
||||
*ptr++ = colormap[temp & 15][1];
|
||||
*ptr++ = colormap[temp & 15][0];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!compression) {
|
||||
@ -393,5 +396,5 @@ read_long(FILE *fp) { // I - File to read from
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_BMP_Image.cxx,v 1.1.2.9 2002/08/09 01:09:48 easysw Exp $".
|
||||
// End of "$Id: Fl_BMP_Image.cxx,v 1.1.2.10 2002/08/30 16:58:16 easysw Exp $".
|
||||
//
|
||||
|
@ -173,7 +173,7 @@ Fl_File_Chooser::Fl_File_Chooser(const char *d, const char *p, int t, const char
|
||||
}
|
||||
{ Fl_Group* o = new Fl_Group(0, 275, 480, 95);
|
||||
{ Fl_Group* o = new Fl_Group(10, 275, 470, 20);
|
||||
{ Fl_Check_Button* o = previewButton = new Fl_Check_Button(405, 275, 75, 20, "Preview");
|
||||
{ Fl_Check_Button* o = previewButton = new Fl_Check_Button(10, 275, 170, 20, "Preview");
|
||||
o->down_box(FL_DOWN_BOX);
|
||||
o->value(1);
|
||||
o->shortcut(0x80070);
|
||||
@ -246,16 +246,7 @@ Fl_File_Chooser::Fl_File_Chooser(const char *d, const char *p, int t, const char
|
||||
}
|
||||
callback_ = 0;
|
||||
data_ = 0;
|
||||
directory_[0] = '\0';
|
||||
window->size_range(window->w(), window->h(), Fl::w(), Fl::h());
|
||||
type(t);
|
||||
filter(p);
|
||||
update_favorites();
|
||||
value(d);
|
||||
type(t);
|
||||
int e;
|
||||
prefs_.get("preview", e, 1);
|
||||
preview(e);
|
||||
directory_[0] = '
|
||||
}
|
||||
|
||||
Fl_File_Chooser::~Fl_File_Chooser() {
|
||||
|
@ -52,7 +52,7 @@ window->hide();} open
|
||||
code0 {favoritesButton->label(favorites_label);}
|
||||
} {}
|
||||
Fl_Button newButton {
|
||||
callback {newdir();} selected
|
||||
callback {newdir();}
|
||||
tooltip {Create a new directory.} image {new.xbm} xywh {455 10 25 25} labelsize 8
|
||||
code0 {\#include <FL/Fl_Preferences.H>}
|
||||
}
|
||||
@ -79,8 +79,8 @@ window->hide();} open
|
||||
} {
|
||||
Fl_Check_Button previewButton {
|
||||
label Preview
|
||||
callback {preview(previewButton->value());}
|
||||
xywh {405 275 75 20} down_box DOWN_BOX shortcut 0x80070 value 1
|
||||
callback {preview(previewButton->value());} selected
|
||||
xywh {10 275 170 20} down_box DOWN_BOX shortcut 0x80070 value 1
|
||||
code0 {previewButton->label(preview_label);}
|
||||
}
|
||||
Fl_Box {} {
|
||||
@ -166,16 +166,7 @@ window->hide();}
|
||||
}
|
||||
code {callback_ = 0;
|
||||
data_ = 0;
|
||||
directory_[0] = '\0';
|
||||
window->size_range(window->w(), window->h(), Fl::w(), Fl::h());
|
||||
type(t);
|
||||
filter(p);
|
||||
update_favorites();
|
||||
value(d);
|
||||
type(t);
|
||||
int e;
|
||||
prefs_.get("preview", e, 1);
|
||||
preview(e);} {}
|
||||
directory_[0] = '} {}
|
||||
}
|
||||
Function {~Fl_File_Chooser()} {open
|
||||
} {
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include "../FL/Fl_Help_Dialog.H"
|
||||
#include "flstring.h"
|
||||
#include <FL/fl_ask.H>
|
||||
|
||||
inline void Fl_Help_Dialog::cb_view__i(Fl_Help_View*, void*) {
|
||||
if (view_->changed())
|
||||
@ -118,6 +119,7 @@ Fl_Help_Dialog::Fl_Help_Dialog() {
|
||||
}
|
||||
{ Fl_Button* o = new Fl_Button(425, 350, 95, 25, "Close");
|
||||
o->callback((Fl_Callback*)cb_Close);
|
||||
o->label(fl_close);
|
||||
}
|
||||
{ Fl_Button* o = back_ = new Fl_Button(365, 350, 25, 25, "@<-");
|
||||
o->tooltip("Show the previous help page.");
|
||||
|
@ -2,7 +2,9 @@
|
||||
version 1.0100
|
||||
header_name {../FL/Fl_Help_Dialog.H}
|
||||
code_name {.cxx}
|
||||
decl {\#include "flstring.h"} {selected
|
||||
decl {\#include "flstring.h"} {}
|
||||
|
||||
decl {\#include <FL/fl_ask.H>} {selected
|
||||
}
|
||||
|
||||
class Fl_Help_Dialog {open
|
||||
@ -15,8 +17,7 @@ class Fl_Help_Dialog {open
|
||||
} {
|
||||
Fl_Window window_ {
|
||||
label {Help Dialog} open
|
||||
private xywh {470 380 530 385} type Double resizable
|
||||
visible
|
||||
private xywh {470 380 530 385} type Double resizable visible
|
||||
} {
|
||||
Fl_Group view_ {
|
||||
callback {if (view_->changed())
|
||||
@ -56,6 +57,7 @@ else if (view_->filename())
|
||||
label Close
|
||||
callback {window_->hide();}
|
||||
xywh {425 350 95 25}
|
||||
code0 {o->label(fl_close);}
|
||||
}
|
||||
Fl_Button back_ {
|
||||
label {@<-}
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_ask.cxx,v 1.8.2.8.2.9 2002/06/06 14:22:05 easysw Exp $"
|
||||
// "$Id: fl_ask.cxx,v 1.8.2.8.2.10 2002/08/30 16:58:16 easysw Exp $"
|
||||
//
|
||||
// Standard dialog functions for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -72,7 +72,8 @@ static Fl_Window *makeform() {
|
||||
o->color(FL_WHITE);
|
||||
o->labelcolor(FL_BLUE);
|
||||
}
|
||||
(button[0] = new Fl_Button(310, 70, 90, 23))->shortcut("^[");
|
||||
button[0] = new Fl_Button(310, 70, 90, 23);
|
||||
button[0]->shortcut("^[");
|
||||
button[0]->align(FL_ALIGN_INSIDE|FL_ALIGN_WRAP);
|
||||
button[1] = new Fl_Return_Button(210, 70, 90, 23);
|
||||
button[1]->align(FL_ALIGN_INSIDE|FL_ALIGN_WRAP);
|
||||
@ -149,11 +150,15 @@ void resizeform() {
|
||||
icon->labelsize(icon_size - 10);
|
||||
input->resize(20 + icon_size, 10 + message_h, message_w, 25);
|
||||
|
||||
for (x = w, i = 2; i >= 0; i --)
|
||||
for (x = w, i = 0; i < 3; i ++)
|
||||
if (button_w[i])
|
||||
{
|
||||
x -= button_w[i];
|
||||
button[i]->resize(x, h - 10 - max_h, button_w[i] - 10, max_h);
|
||||
|
||||
// printf("button %d (%s) is %dx%d+%d,%d\n", i, button[i]->label(),
|
||||
// button[i]->w(), button[i]->h(),
|
||||
// button[i]->x(), button[i]->y());
|
||||
}
|
||||
}
|
||||
|
||||
@ -206,6 +211,7 @@ const char* fl_no = "No";
|
||||
const char* fl_yes= "Yes";
|
||||
const char* fl_ok = "OK";
|
||||
const char* fl_cancel= "Cancel";
|
||||
const char* fl_close= "Close";
|
||||
|
||||
// fltk functions:
|
||||
void fl_beep(int type) {
|
||||
@ -311,10 +317,6 @@ static const char* input_innards(const char* fmt, va_list ap,
|
||||
input->show();
|
||||
input->value(defstr);
|
||||
|
||||
#ifdef WIN32
|
||||
MessageBeep(MB_ICONQUESTION);
|
||||
#endif // WIN32
|
||||
|
||||
int r = innards(fmt, ap, fl_cancel, fl_ok, 0);
|
||||
input->hide();
|
||||
message->position(60,25);
|
||||
@ -342,5 +344,5 @@ const char *fl_password(const char *fmt, const char *defstr, ...) {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: fl_ask.cxx,v 1.8.2.8.2.9 2002/06/06 14:22:05 easysw Exp $".
|
||||
// End of "$Id: fl_ask.cxx,v 1.8.2.8.2.10 2002/08/30 16:58:16 easysw Exp $".
|
||||
//
|
||||
|
58
test/ask.cxx
58
test/ask.cxx
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: ask.cxx,v 1.4.2.3.2.1 2002/01/01 15:11:32 easysw Exp $"
|
||||
// "$Id: ask.cxx,v 1.4.2.3.2.2 2002/08/30 16:58:16 easysw Exp $"
|
||||
//
|
||||
// Standard dialog test program for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -38,48 +38,26 @@
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Return_Button.H>
|
||||
|
||||
int get_string(char*buffer) {
|
||||
Fl_Window window(320,75);
|
||||
Fl_Input input(60, 10, 250, 25, "Input:");
|
||||
input.value(buffer);
|
||||
Fl_Button cancel(60, 40, 80, 25, "cancel");
|
||||
Fl_Return_Button ok(150, 40, 80, 25, "OK");
|
||||
window.hotspot(&cancel); // you must position modal windows
|
||||
window.end();
|
||||
window.set_modal();
|
||||
window.show();
|
||||
for (;;) {
|
||||
Fl::wait();
|
||||
Fl_Widget *o;
|
||||
while ((o = Fl::readqueue())) {
|
||||
if (o == &ok) {
|
||||
strcpy(buffer,input.value());
|
||||
return 1;
|
||||
} else if (o == &cancel || o == &window) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void rename_me(Fl_Widget*o) {
|
||||
if (get_string((char*)(o->label()))) o->redraw();
|
||||
}
|
||||
|
||||
#if 1
|
||||
#include <FL/fl_ask.H>
|
||||
#include <stdlib.h>
|
||||
|
||||
void rename_me(Fl_Widget*o) {
|
||||
const char *input = fl_input("Input:", o->label());
|
||||
|
||||
if (input) {
|
||||
o->label(input);
|
||||
o->redraw();
|
||||
}
|
||||
}
|
||||
|
||||
void window_callback(Fl_Widget*, void*) {
|
||||
if (!fl_ask("Are you sure you want to quit?")) return;
|
||||
exit(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
char buffer[128] = "test text";
|
||||
|
||||
#if 1
|
||||
// this is a test to make sure automatic destructors work. Pop up
|
||||
// the question dialog several times and make sure it don't crash.
|
||||
|
||||
@ -93,22 +71,8 @@ int main(int argc, char **argv) {
|
||||
window.callback(window_callback);
|
||||
|
||||
return Fl::run();
|
||||
|
||||
#else
|
||||
// This is the demo as written in the documentation, it only creates
|
||||
// the popup window once:
|
||||
|
||||
if (get_string(buffer)) {
|
||||
puts(buffer);
|
||||
} else {
|
||||
puts("cancel");
|
||||
}
|
||||
return 0;
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: ask.cxx,v 1.4.2.3.2.1 2002/01/01 15:11:32 easysw Exp $".
|
||||
// End of "$Id: ask.cxx,v 1.4.2.3.2.2 2002/08/30 16:58:16 easysw Exp $".
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user