International menu shortcuts working on Mac OS (and probably the other OS's)

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6878 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Matthias Melcher 2009-09-17 22:12:24 +00:00
parent c0e4cf48a4
commit bcff4ec8e0
11 changed files with 317 additions and 52 deletions

View File

@ -330,6 +330,8 @@ enum Fl_When { // Fl_Widget::when():
/*@{*/
// FIXME: These codes collide with valid Unicode keys
#define FL_Button 0xfee8 ///< A mouse button; use Fl_Button + n for mouse button n.
#define FL_BackSpace 0xff08 ///< The backspace key.
#define FL_Tab 0xff09 ///< The tab key.
@ -391,6 +393,9 @@ enum Fl_When { // Fl_Widget::when():
/*@{*/ // group: Event States
// FIXME: it would be nice to have the modifiers in the upper 8 bit so that
// a unicode ke (24bit) can be sent as an unsigned with the modifiers.
#define FL_SHIFT 0x00010000 ///< One of the shift keys is down
#define FL_CAPS_LOCK 0x00020000 ///< The caps lock is on
#define FL_CTRL 0x00040000 ///< One of the ctrl keys is down
@ -407,6 +412,9 @@ enum Fl_When { // Fl_Widget::when():
#define FL_BUTTONS 0x7f000000 ///< Any mouse button is pushed
#define FL_BUTTON(n) (0x00800000<<(n)) ///< Mouse button n (n > 0) is pushed
#define FL_KEY_MASK 0x0000ffff ///< All keys are 16 bit for now
// FIXME: Unicode needs 24 bits!
#ifdef __APPLE__
# define FL_COMMAND FL_META ///< An alias for FL_CTRL on WIN32 and X11, or FL_META on MacOS X
# define FL_CONTROL FL_CTRL ///< An alias for FL_META on WIN32 and X11, or FL_META on MacOS X

View File

@ -568,7 +568,7 @@ public:
static void compose_reset() {compose_state = 0;}
static int event_inside(int,int,int,int);
static int event_inside(const Fl_Widget*);
static int test_shortcut(int);
static int test_shortcut(Fl_Shortcut);
// event destinations:
static int handle(int, Fl_Window*);

View File

@ -45,7 +45,7 @@
#define FL_HIDDEN_BUTTON 3 ///< for Forms compatibility
#ifndef FL_DOXYGEN
extern FL_EXPORT int fl_old_shortcut(const char*);
extern FL_EXPORT Fl_Shortcut fl_old_shortcut(const char*);
#endif
/**

View File

@ -47,7 +47,7 @@ enum { // values for flags:
FL_MENU_HORIZONTAL = 0x100 ///< ??? -- reserved
};
extern FL_EXPORT int fl_old_shortcut(const char*);
extern FL_EXPORT Fl_Shortcut fl_old_shortcut(const char*);
class Fl_Menu_;

View File

@ -828,7 +828,7 @@ public:
/** Internal use only. */
int test_shortcut();
/** Internal use only. */
static char label_shortcut(const char *t);
static Fl_Shortcut label_shortcut(const char *t);
/** Internal use only. */
static int test_shortcut(const char*);

View File

@ -441,8 +441,8 @@ FL_EXPORT int fl_measure_pixmap(const char* const* cdata, int &w, int &h);
// other:
FL_EXPORT void fl_scroll(int X, int Y, int W, int H, int dx, int dy,
void (*draw_area)(void*, int,int,int,int), void* data);
FL_EXPORT const char* fl_shortcut_label(int shortcut);
FL_EXPORT const char* fl_shortcut_label(int shortcuti, const char **eom);
FL_EXPORT const char* fl_shortcut_label(Fl_Shortcut shortcut);
FL_EXPORT const char* fl_shortcut_label(Fl_Shortcut shortcut, const char **eom);
FL_EXPORT void fl_overlay_rect(int x,int y,int w,int h);
FL_EXPORT void fl_overlay_clear();
FL_EXPORT void fl_cursor(Fl_Cursor, Fl_Color fg=FL_BLACK, Fl_Color bg=FL_WHITE);

View File

@ -7,7 +7,7 @@
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,

View File

@ -3025,6 +3025,133 @@
C9A3EE180DD646F100486E4F /* colbrowser.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = colbrowser.cxx; path = ../../test/colbrowser.cxx; sourceTree = SOURCE_ROOT; };
C9A3EE780DD64AE700486E4F /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
C9A3EE790DD64B0200486E4F /* TODO */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TODO; sourceTree = "<group>"; };
C9B9CA091062DFB30032F684 /* filename.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = filename.H; path = ../../FL/filename.H; sourceTree = SOURCE_ROOT; };
C9B9CA0A1062DFB30032F684 /* Fl_Adjuster.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Adjuster.H; path = ../../FL/Fl_Adjuster.H; sourceTree = SOURCE_ROOT; };
C9B9CA0B1062DFB30032F684 /* fl_ask.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = fl_ask.H; path = ../../FL/fl_ask.H; sourceTree = SOURCE_ROOT; };
C9B9CA0C1062DFB30032F684 /* Fl_Bitmap.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Bitmap.H; path = ../../FL/Fl_Bitmap.H; sourceTree = SOURCE_ROOT; };
C9B9CA0D1062DFB30032F684 /* Fl_BMP_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_BMP_Image.H; path = ../../FL/Fl_BMP_Image.H; sourceTree = SOURCE_ROOT; };
C9B9CA0E1062DFB30032F684 /* Fl_Box.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Box.H; path = ../../FL/Fl_Box.H; sourceTree = SOURCE_ROOT; };
C9B9CA0F1062DFB30032F684 /* Fl_Browser_.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Browser_.H; path = ../../FL/Fl_Browser_.H; sourceTree = SOURCE_ROOT; };
C9B9CA101062DFB30032F684 /* Fl_Browser.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Browser.H; path = ../../FL/Fl_Browser.H; sourceTree = SOURCE_ROOT; };
C9B9CA111062DFB30032F684 /* Fl_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Button.H; path = ../../FL/Fl_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA121062DFB30032F684 /* Fl_Cairo_Window.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Cairo_Window.H; path = ../../FL/Fl_Cairo_Window.H; sourceTree = SOURCE_ROOT; };
C9B9CA131062DFB30032F684 /* Fl_Cairo.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Cairo.H; path = ../../FL/Fl_Cairo.H; sourceTree = SOURCE_ROOT; };
C9B9CA141062DFB30032F684 /* Fl_Chart.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Chart.H; path = ../../FL/Fl_Chart.H; sourceTree = SOURCE_ROOT; };
C9B9CA151062DFB30032F684 /* Fl_Check_Browser.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Check_Browser.H; path = ../../FL/Fl_Check_Browser.H; sourceTree = SOURCE_ROOT; };
C9B9CA161062DFB30032F684 /* Fl_Check_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Check_Button.H; path = ../../FL/Fl_Check_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA171062DFB30032F684 /* Fl_Choice.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Choice.H; path = ../../FL/Fl_Choice.H; sourceTree = SOURCE_ROOT; };
C9B9CA181062DFB30032F684 /* Fl_Clock.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Clock.H; path = ../../FL/Fl_Clock.H; sourceTree = SOURCE_ROOT; };
C9B9CA191062DFB30032F684 /* Fl_Color_Chooser.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Color_Chooser.H; path = ../../FL/Fl_Color_Chooser.H; sourceTree = SOURCE_ROOT; };
C9B9CA1A1062DFB30032F684 /* Fl_Counter.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Counter.H; path = ../../FL/Fl_Counter.H; sourceTree = SOURCE_ROOT; };
C9B9CA1B1062DFB30032F684 /* Fl_Dial.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Dial.H; path = ../../FL/Fl_Dial.H; sourceTree = SOURCE_ROOT; };
C9B9CA1C1062DFB30032F684 /* Fl_Double_Window.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Double_Window.H; path = ../../FL/Fl_Double_Window.H; sourceTree = SOURCE_ROOT; };
C9B9CA1D1062DFB30032F684 /* fl_draw.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = fl_draw.H; path = ../../FL/fl_draw.H; sourceTree = SOURCE_ROOT; };
C9B9CA1E1062DFB30032F684 /* Fl_Export.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Export.H; path = ../../FL/Fl_Export.H; sourceTree = SOURCE_ROOT; };
C9B9CA1F1062DFB30032F684 /* Fl_File_Browser.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_File_Browser.H; path = ../../FL/Fl_File_Browser.H; sourceTree = SOURCE_ROOT; };
C9B9CA201062DFB30032F684 /* Fl_File_Chooser.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_File_Chooser.H; path = ../../FL/Fl_File_Chooser.H; sourceTree = SOURCE_ROOT; };
C9B9CA211062DFB30032F684 /* Fl_File_Icon.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_File_Icon.H; path = ../../FL/Fl_File_Icon.H; sourceTree = SOURCE_ROOT; };
C9B9CA221062DFB30032F684 /* Fl_File_Input.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_File_Input.H; path = ../../FL/Fl_File_Input.H; sourceTree = SOURCE_ROOT; };
C9B9CA231062DFB30032F684 /* Fl_Fill_Dial.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Fill_Dial.H; path = ../../FL/Fl_Fill_Dial.H; sourceTree = SOURCE_ROOT; };
C9B9CA241062DFB30032F684 /* Fl_Fill_Slider.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Fill_Slider.H; path = ../../FL/Fl_Fill_Slider.H; sourceTree = SOURCE_ROOT; };
C9B9CA251062DFB30032F684 /* Fl_Float_Input.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Float_Input.H; path = ../../FL/Fl_Float_Input.H; sourceTree = SOURCE_ROOT; };
C9B9CA261062DFB30032F684 /* Fl_FormsBitmap.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_FormsBitmap.H; path = ../../FL/Fl_FormsBitmap.H; sourceTree = SOURCE_ROOT; };
C9B9CA271062DFB30032F684 /* Fl_FormsPixmap.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_FormsPixmap.H; path = ../../FL/Fl_FormsPixmap.H; sourceTree = SOURCE_ROOT; };
C9B9CA281062DFB30032F684 /* Fl_Free.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Free.H; path = ../../FL/Fl_Free.H; sourceTree = SOURCE_ROOT; };
C9B9CA291062DFB30032F684 /* Fl_GIF_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_GIF_Image.H; path = ../../FL/Fl_GIF_Image.H; sourceTree = SOURCE_ROOT; };
C9B9CA2A1062DFB30032F684 /* Fl_Gl_Window.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Gl_Window.H; path = ../../FL/Fl_Gl_Window.H; sourceTree = SOURCE_ROOT; };
C9B9CA2B1062DFB30032F684 /* Fl_Group.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Group.H; path = ../../FL/Fl_Group.H; sourceTree = SOURCE_ROOT; };
C9B9CA2C1062DFB30032F684 /* Fl_Help_Dialog.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Help_Dialog.H; path = ../../FL/Fl_Help_Dialog.H; sourceTree = SOURCE_ROOT; };
C9B9CA2D1062DFB30032F684 /* Fl_Help_View.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Help_View.H; path = ../../FL/Fl_Help_View.H; sourceTree = SOURCE_ROOT; };
C9B9CA2E1062DFB30032F684 /* Fl_Hold_Browser.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Hold_Browser.H; path = ../../FL/Fl_Hold_Browser.H; sourceTree = SOURCE_ROOT; };
C9B9CA2F1062DFB30032F684 /* Fl_Hor_Fill_Slider.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Hor_Fill_Slider.H; path = ../../FL/Fl_Hor_Fill_Slider.H; sourceTree = SOURCE_ROOT; };
C9B9CA301062DFB30032F684 /* Fl_Hor_Nice_Slider.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Hor_Nice_Slider.H; path = ../../FL/Fl_Hor_Nice_Slider.H; sourceTree = SOURCE_ROOT; };
C9B9CA311062DFB30032F684 /* Fl_Hor_Slider.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Hor_Slider.H; path = ../../FL/Fl_Hor_Slider.H; sourceTree = SOURCE_ROOT; };
C9B9CA321062DFB30032F684 /* Fl_Hor_Value_Slider.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Hor_Value_Slider.H; path = ../../FL/Fl_Hor_Value_Slider.H; sourceTree = SOURCE_ROOT; };
C9B9CA331062DFB30032F684 /* Fl_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Image.H; path = ../../FL/Fl_Image.H; sourceTree = SOURCE_ROOT; };
C9B9CA341062DFB30032F684 /* Fl_Input_.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Input_.H; path = ../../FL/Fl_Input_.H; sourceTree = SOURCE_ROOT; };
C9B9CA351062DFB30032F684 /* Fl_Input_Choice.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Input_Choice.H; path = ../../FL/Fl_Input_Choice.H; sourceTree = SOURCE_ROOT; };
C9B9CA361062DFB30032F684 /* Fl_Input.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Input.H; path = ../../FL/Fl_Input.H; sourceTree = SOURCE_ROOT; };
C9B9CA371062DFB30032F684 /* Fl_Int_Input.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Int_Input.H; path = ../../FL/Fl_Int_Input.H; sourceTree = SOURCE_ROOT; };
C9B9CA381062DFB30032F684 /* Fl_JPEG_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_JPEG_Image.H; path = ../../FL/Fl_JPEG_Image.H; sourceTree = SOURCE_ROOT; };
C9B9CA391062DFB30032F684 /* Fl_Light_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Light_Button.H; path = ../../FL/Fl_Light_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA3A1062DFB30032F684 /* Fl_Line_Dial.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Line_Dial.H; path = ../../FL/Fl_Line_Dial.H; sourceTree = SOURCE_ROOT; };
C9B9CA3B1062DFB30032F684 /* Fl_Menu_.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Menu_.H; path = ../../FL/Fl_Menu_.H; sourceTree = SOURCE_ROOT; };
C9B9CA3C1062DFB30032F684 /* Fl_Menu_Bar.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Menu_Bar.H; path = ../../FL/Fl_Menu_Bar.H; sourceTree = SOURCE_ROOT; };
C9B9CA3D1062DFB30032F684 /* Fl_Menu_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Menu_Button.H; path = ../../FL/Fl_Menu_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA3E1062DFB30032F684 /* Fl_Menu_Item.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Menu_Item.H; path = ../../FL/Fl_Menu_Item.H; sourceTree = SOURCE_ROOT; };
C9B9CA3F1062DFB30032F684 /* Fl_Menu_Window.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Menu_Window.H; path = ../../FL/Fl_Menu_Window.H; sourceTree = SOURCE_ROOT; };
C9B9CA401062DFB30032F684 /* Fl_Menu.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Menu.H; path = ../../FL/Fl_Menu.H; sourceTree = SOURCE_ROOT; };
C9B9CA411062DFB30032F684 /* fl_message.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = fl_message.H; path = ../../FL/fl_message.H; sourceTree = SOURCE_ROOT; };
C9B9CA421062DFB30032F684 /* Fl_Multi_Browser.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Multi_Browser.H; path = ../../FL/Fl_Multi_Browser.H; sourceTree = SOURCE_ROOT; };
C9B9CA431062DFB30032F684 /* Fl_Multi_Label.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Multi_Label.H; path = ../../FL/Fl_Multi_Label.H; sourceTree = SOURCE_ROOT; };
C9B9CA441062DFB30032F684 /* Fl_Multiline_Input.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Multiline_Input.H; path = ../../FL/Fl_Multiline_Input.H; sourceTree = SOURCE_ROOT; };
C9B9CA451062DFB30032F684 /* Fl_Multiline_Output.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Multiline_Output.H; path = ../../FL/Fl_Multiline_Output.H; sourceTree = SOURCE_ROOT; };
C9B9CA461062DFB30032F684 /* Fl_Nice_Slider.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Nice_Slider.H; path = ../../FL/Fl_Nice_Slider.H; sourceTree = SOURCE_ROOT; };
C9B9CA471062DFB30032F684 /* Fl_Object.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Object.H; path = ../../FL/Fl_Object.H; sourceTree = SOURCE_ROOT; };
C9B9CA481062DFB30032F684 /* Fl_Output.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Output.H; path = ../../FL/Fl_Output.H; sourceTree = SOURCE_ROOT; };
C9B9CA491062DFB30032F684 /* Fl_Overlay_Window.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Overlay_Window.H; path = ../../FL/Fl_Overlay_Window.H; sourceTree = SOURCE_ROOT; };
C9B9CA4A1062DFB30032F684 /* Fl_Pack.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Pack.H; path = ../../FL/Fl_Pack.H; sourceTree = SOURCE_ROOT; };
C9B9CA4B1062DFB30032F684 /* Fl_Pixmap.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Pixmap.H; path = ../../FL/Fl_Pixmap.H; sourceTree = SOURCE_ROOT; };
C9B9CA4C1062DFB30032F684 /* Fl_PNG_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_PNG_Image.H; path = ../../FL/Fl_PNG_Image.H; sourceTree = SOURCE_ROOT; };
C9B9CA4D1062DFB30032F684 /* Fl_PNM_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_PNM_Image.H; path = ../../FL/Fl_PNM_Image.H; sourceTree = SOURCE_ROOT; };
C9B9CA4E1062DFB30032F684 /* Fl_Positioner.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Positioner.H; path = ../../FL/Fl_Positioner.H; sourceTree = SOURCE_ROOT; };
C9B9CA4F1062DFB30032F684 /* Fl_Preferences.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Preferences.H; path = ../../FL/Fl_Preferences.H; sourceTree = SOURCE_ROOT; };
C9B9CA501062DFB30032F684 /* Fl_Progress.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Progress.H; path = ../../FL/Fl_Progress.H; sourceTree = SOURCE_ROOT; };
C9B9CA511062DFB30032F684 /* Fl_Radio_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Radio_Button.H; path = ../../FL/Fl_Radio_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA521062DFB30032F684 /* Fl_Radio_Light_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Radio_Light_Button.H; path = ../../FL/Fl_Radio_Light_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA531062DFB30032F684 /* Fl_Radio_Round_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Radio_Round_Button.H; path = ../../FL/Fl_Radio_Round_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA541062DFB30032F684 /* Fl_Repeat_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Repeat_Button.H; path = ../../FL/Fl_Repeat_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA551062DFB30032F684 /* Fl_Return_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Return_Button.H; path = ../../FL/Fl_Return_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA561062DFB30032F684 /* Fl_RGB_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_RGB_Image.H; path = ../../FL/Fl_RGB_Image.H; sourceTree = SOURCE_ROOT; };
C9B9CA571062DFB30032F684 /* Fl_Roller.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Roller.H; path = ../../FL/Fl_Roller.H; sourceTree = SOURCE_ROOT; };
C9B9CA581062DFB30032F684 /* Fl_Round_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Round_Button.H; path = ../../FL/Fl_Round_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA591062DFB30032F684 /* Fl_Round_Clock.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Round_Clock.H; path = ../../FL/Fl_Round_Clock.H; sourceTree = SOURCE_ROOT; };
C9B9CA5A1062DFB30032F684 /* Fl_Scroll.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Scroll.H; path = ../../FL/Fl_Scroll.H; sourceTree = SOURCE_ROOT; };
C9B9CA5B1062DFB30032F684 /* Fl_Scrollbar.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Scrollbar.H; path = ../../FL/Fl_Scrollbar.H; sourceTree = SOURCE_ROOT; };
C9B9CA5C1062DFB30032F684 /* Fl_Secret_Input.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Secret_Input.H; path = ../../FL/Fl_Secret_Input.H; sourceTree = SOURCE_ROOT; };
C9B9CA5D1062DFB30032F684 /* Fl_Select_Browser.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Select_Browser.H; path = ../../FL/Fl_Select_Browser.H; sourceTree = SOURCE_ROOT; };
C9B9CA5E1062DFB30032F684 /* Fl_Shared_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Shared_Image.H; path = ../../FL/Fl_Shared_Image.H; sourceTree = SOURCE_ROOT; };
C9B9CA5F1062DFB30032F684 /* fl_show_colormap.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = fl_show_colormap.H; path = ../../FL/fl_show_colormap.H; sourceTree = SOURCE_ROOT; };
C9B9CA601062DFB30032F684 /* fl_show_input.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = fl_show_input.H; path = ../../FL/fl_show_input.H; sourceTree = SOURCE_ROOT; };
C9B9CA611062DFB30032F684 /* Fl_Simple_Counter.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Simple_Counter.H; path = ../../FL/Fl_Simple_Counter.H; sourceTree = SOURCE_ROOT; };
C9B9CA621062DFB30032F684 /* Fl_Single_Window.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Single_Window.H; path = ../../FL/Fl_Single_Window.H; sourceTree = SOURCE_ROOT; };
C9B9CA631062DFB30032F684 /* Fl_Slider.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Slider.H; path = ../../FL/Fl_Slider.H; sourceTree = SOURCE_ROOT; };
C9B9CA641062DFB30032F684 /* Fl_Spinner.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Spinner.H; path = ../../FL/Fl_Spinner.H; sourceTree = SOURCE_ROOT; };
C9B9CA651062DFB30032F684 /* Fl_Sys_Menu_Bar.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Sys_Menu_Bar.H; path = ../../FL/Fl_Sys_Menu_Bar.H; sourceTree = SOURCE_ROOT; };
C9B9CA661062DFB30032F684 /* Fl_Tabs.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Tabs.H; path = ../../FL/Fl_Tabs.H; sourceTree = SOURCE_ROOT; };
C9B9CA671062DFB30032F684 /* Fl_Text_Buffer.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Text_Buffer.H; path = ../../FL/Fl_Text_Buffer.H; sourceTree = SOURCE_ROOT; };
C9B9CA681062DFB30032F684 /* Fl_Text_Display.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Text_Display.H; path = ../../FL/Fl_Text_Display.H; sourceTree = SOURCE_ROOT; };
C9B9CA691062DFB30032F684 /* Fl_Text_Editor.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Text_Editor.H; path = ../../FL/Fl_Text_Editor.H; sourceTree = SOURCE_ROOT; };
C9B9CA6A1062DFB30032F684 /* Fl_Tile.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Tile.H; path = ../../FL/Fl_Tile.H; sourceTree = SOURCE_ROOT; };
C9B9CA6B1062DFB30032F684 /* Fl_Tiled_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Tiled_Image.H; path = ../../FL/Fl_Tiled_Image.H; sourceTree = SOURCE_ROOT; };
C9B9CA6C1062DFB30032F684 /* Fl_Timer.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Timer.H; path = ../../FL/Fl_Timer.H; sourceTree = SOURCE_ROOT; };
C9B9CA6D1062DFB30032F684 /* Fl_Toggle_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Toggle_Button.H; path = ../../FL/Fl_Toggle_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA6E1062DFB30032F684 /* Fl_Toggle_Light_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Toggle_Light_Button.H; path = ../../FL/Fl_Toggle_Light_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA6F1062DFB30032F684 /* Fl_Toggle_Round_Button.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Toggle_Round_Button.H; path = ../../FL/Fl_Toggle_Round_Button.H; sourceTree = SOURCE_ROOT; };
C9B9CA701062DFB30032F684 /* Fl_Tooltip.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Tooltip.H; path = ../../FL/Fl_Tooltip.H; sourceTree = SOURCE_ROOT; };
C9B9CA711062DFB30032F684 /* fl_utf8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fl_utf8.h; path = ../../FL/fl_utf8.h; sourceTree = SOURCE_ROOT; };
C9B9CA721062DFB30032F684 /* Fl_Valuator.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Valuator.H; path = ../../FL/Fl_Valuator.H; sourceTree = SOURCE_ROOT; };
C9B9CA731062DFB30032F684 /* Fl_Value_Input.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Value_Input.H; path = ../../FL/Fl_Value_Input.H; sourceTree = SOURCE_ROOT; };
C9B9CA741062DFB30032F684 /* Fl_Value_Output.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Value_Output.H; path = ../../FL/Fl_Value_Output.H; sourceTree = SOURCE_ROOT; };
C9B9CA751062DFB30032F684 /* Fl_Value_Slider.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Value_Slider.H; path = ../../FL/Fl_Value_Slider.H; sourceTree = SOURCE_ROOT; };
C9B9CA761062DFB30032F684 /* Fl_Widget.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Widget.H; path = ../../FL/Fl_Widget.H; sourceTree = SOURCE_ROOT; };
C9B9CA771062DFB30032F684 /* Fl_Window.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Window.H; path = ../../FL/Fl_Window.H; sourceTree = SOURCE_ROOT; };
C9B9CA781062DFB30032F684 /* Fl_Wizard.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Wizard.H; path = ../../FL/Fl_Wizard.H; sourceTree = SOURCE_ROOT; };
C9B9CA791062DFB30032F684 /* Fl_XBM_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_XBM_Image.H; path = ../../FL/Fl_XBM_Image.H; sourceTree = SOURCE_ROOT; };
C9B9CA7A1062DFB30032F684 /* Fl_XPM_Image.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_XPM_Image.H; path = ../../FL/Fl_XPM_Image.H; sourceTree = SOURCE_ROOT; };
C9B9CA7B1062DFB30032F684 /* Fl.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl.H; path = ../../FL/Fl.H; sourceTree = SOURCE_ROOT; };
C9B9CA7C1062DFB30032F684 /* forms.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = forms.H; path = ../../FL/forms.H; sourceTree = SOURCE_ROOT; };
C9B9CA7D1062DFB30032F684 /* gl_draw.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = gl_draw.H; path = ../../FL/gl_draw.H; sourceTree = SOURCE_ROOT; };
C9B9CA7E1062DFB30032F684 /* gl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gl.h; path = ../../FL/gl.h; sourceTree = SOURCE_ROOT; };
C9B9CA7F1062DFB30032F684 /* gl2opengl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gl2opengl.h; path = ../../FL/gl2opengl.h; sourceTree = SOURCE_ROOT; };
C9B9CA801062DFB30032F684 /* glu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = glu.h; path = ../../FL/glu.h; sourceTree = SOURCE_ROOT; };
C9B9CA811062DFB30032F684 /* glut.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = glut.H; path = ../../FL/glut.H; sourceTree = SOURCE_ROOT; };
C9B9CA821062DFB30032F684 /* mac.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = mac.H; path = ../../FL/mac.H; sourceTree = SOURCE_ROOT; };
C9B9CA831062DFB30032F684 /* math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = math.h; path = ../../FL/math.h; sourceTree = SOURCE_ROOT; };
C9B9CA841062DFB30032F684 /* names.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = names.h; path = ../../FL/names.h; sourceTree = SOURCE_ROOT; };
C9B9CA851062DFB30032F684 /* win32.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = win32.H; path = ../../FL/win32.H; sourceTree = SOURCE_ROOT; };
C9B9CA861062DFB30032F684 /* x.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = x.H; path = ../../FL/x.H; sourceTree = SOURCE_ROOT; };
C9B9CA871062DFB30032F684 /* Xutf8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Xutf8.h; path = ../../FL/Xutf8.h; sourceTree = SOURCE_ROOT; };
C9C870BE0DD7721700A9793F /* color_chooser.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = color_chooser.app; sourceTree = BUILT_PRODUCTS_DIR; };
C9C870C00DD7721700A9793F /* color_chooser-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "color_chooser-Info.plist"; path = "plists/color_chooser-Info.plist"; sourceTree = "<group>"; };
C9C870C80DD7724200A9793F /* color_chooser.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = color_chooser.cxx; path = ../../test/color_chooser.cxx; sourceTree = SOURCE_ROOT; };
@ -3758,6 +3885,7 @@
C9A3E95A0DD6339500486E4F /* Test Sources */,
C9C8737D0DD7773200A9793F /* Fluid Sources */,
C9A3E9590DD6338B00486E4F /* Library Sources */,
C9B9C9F51062DEE60032F684 /* Library Headers */,
C9DD57660DD7820400A896B4 /* jpeg Sources */,
C9DD576D0DD7821800A896B4 /* png Sources */,
C9A3E9580DD6338300486E4F /* plists */,
@ -4216,6 +4344,140 @@
name = Frameworks;
sourceTree = "<group>";
};
C9B9C9F51062DEE60032F684 /* Library Headers */ = {
isa = PBXGroup;
children = (
C9B9CA091062DFB30032F684 /* filename.H */,
C9B9CA0A1062DFB30032F684 /* Fl_Adjuster.H */,
C9B9CA0B1062DFB30032F684 /* fl_ask.H */,
C9B9CA0C1062DFB30032F684 /* Fl_Bitmap.H */,
C9B9CA0D1062DFB30032F684 /* Fl_BMP_Image.H */,
C9B9CA0E1062DFB30032F684 /* Fl_Box.H */,
C9B9CA0F1062DFB30032F684 /* Fl_Browser_.H */,
C9B9CA101062DFB30032F684 /* Fl_Browser.H */,
C9B9CA111062DFB30032F684 /* Fl_Button.H */,
C9B9CA121062DFB30032F684 /* Fl_Cairo_Window.H */,
C9B9CA131062DFB30032F684 /* Fl_Cairo.H */,
C9B9CA141062DFB30032F684 /* Fl_Chart.H */,
C9B9CA151062DFB30032F684 /* Fl_Check_Browser.H */,
C9B9CA161062DFB30032F684 /* Fl_Check_Button.H */,
C9B9CA171062DFB30032F684 /* Fl_Choice.H */,
C9B9CA181062DFB30032F684 /* Fl_Clock.H */,
C9B9CA191062DFB30032F684 /* Fl_Color_Chooser.H */,
C9B9CA1A1062DFB30032F684 /* Fl_Counter.H */,
C9B9CA1B1062DFB30032F684 /* Fl_Dial.H */,
C9B9CA1C1062DFB30032F684 /* Fl_Double_Window.H */,
C9B9CA1D1062DFB30032F684 /* fl_draw.H */,
C9B9CA1E1062DFB30032F684 /* Fl_Export.H */,
C9B9CA1F1062DFB30032F684 /* Fl_File_Browser.H */,
C9B9CA201062DFB30032F684 /* Fl_File_Chooser.H */,
C9B9CA211062DFB30032F684 /* Fl_File_Icon.H */,
C9B9CA221062DFB30032F684 /* Fl_File_Input.H */,
C9B9CA231062DFB30032F684 /* Fl_Fill_Dial.H */,
C9B9CA241062DFB30032F684 /* Fl_Fill_Slider.H */,
C9B9CA251062DFB30032F684 /* Fl_Float_Input.H */,
C9B9CA261062DFB30032F684 /* Fl_FormsBitmap.H */,
C9B9CA271062DFB30032F684 /* Fl_FormsPixmap.H */,
C9B9CA281062DFB30032F684 /* Fl_Free.H */,
C9B9CA291062DFB30032F684 /* Fl_GIF_Image.H */,
C9B9CA2A1062DFB30032F684 /* Fl_Gl_Window.H */,
C9B9CA2B1062DFB30032F684 /* Fl_Group.H */,
C9B9CA2C1062DFB30032F684 /* Fl_Help_Dialog.H */,
C9B9CA2D1062DFB30032F684 /* Fl_Help_View.H */,
C9B9CA2E1062DFB30032F684 /* Fl_Hold_Browser.H */,
C9B9CA2F1062DFB30032F684 /* Fl_Hor_Fill_Slider.H */,
C9B9CA301062DFB30032F684 /* Fl_Hor_Nice_Slider.H */,
C9B9CA311062DFB30032F684 /* Fl_Hor_Slider.H */,
C9B9CA321062DFB30032F684 /* Fl_Hor_Value_Slider.H */,
C9B9CA331062DFB30032F684 /* Fl_Image.H */,
C9B9CA341062DFB30032F684 /* Fl_Input_.H */,
C9B9CA351062DFB30032F684 /* Fl_Input_Choice.H */,
C9B9CA361062DFB30032F684 /* Fl_Input.H */,
C9B9CA371062DFB30032F684 /* Fl_Int_Input.H */,
C9B9CA381062DFB30032F684 /* Fl_JPEG_Image.H */,
C9B9CA391062DFB30032F684 /* Fl_Light_Button.H */,
C9B9CA3A1062DFB30032F684 /* Fl_Line_Dial.H */,
C9B9CA3B1062DFB30032F684 /* Fl_Menu_.H */,
C9B9CA3C1062DFB30032F684 /* Fl_Menu_Bar.H */,
C9B9CA3D1062DFB30032F684 /* Fl_Menu_Button.H */,
C9B9CA3E1062DFB30032F684 /* Fl_Menu_Item.H */,
C9B9CA3F1062DFB30032F684 /* Fl_Menu_Window.H */,
C9B9CA401062DFB30032F684 /* Fl_Menu.H */,
C9B9CA411062DFB30032F684 /* fl_message.H */,
C9B9CA421062DFB30032F684 /* Fl_Multi_Browser.H */,
C9B9CA431062DFB30032F684 /* Fl_Multi_Label.H */,
C9B9CA441062DFB30032F684 /* Fl_Multiline_Input.H */,
C9B9CA451062DFB30032F684 /* Fl_Multiline_Output.H */,
C9B9CA461062DFB30032F684 /* Fl_Nice_Slider.H */,
C9B9CA471062DFB30032F684 /* Fl_Object.H */,
C9B9CA481062DFB30032F684 /* Fl_Output.H */,
C9B9CA491062DFB30032F684 /* Fl_Overlay_Window.H */,
C9B9CA4A1062DFB30032F684 /* Fl_Pack.H */,
C9B9CA4B1062DFB30032F684 /* Fl_Pixmap.H */,
C9B9CA4C1062DFB30032F684 /* Fl_PNG_Image.H */,
C9B9CA4D1062DFB30032F684 /* Fl_PNM_Image.H */,
C9B9CA4E1062DFB30032F684 /* Fl_Positioner.H */,
C9B9CA4F1062DFB30032F684 /* Fl_Preferences.H */,
C9B9CA501062DFB30032F684 /* Fl_Progress.H */,
C9B9CA511062DFB30032F684 /* Fl_Radio_Button.H */,
C9B9CA521062DFB30032F684 /* Fl_Radio_Light_Button.H */,
C9B9CA531062DFB30032F684 /* Fl_Radio_Round_Button.H */,
C9B9CA541062DFB30032F684 /* Fl_Repeat_Button.H */,
C9B9CA551062DFB30032F684 /* Fl_Return_Button.H */,
C9B9CA561062DFB30032F684 /* Fl_RGB_Image.H */,
C9B9CA571062DFB30032F684 /* Fl_Roller.H */,
C9B9CA581062DFB30032F684 /* Fl_Round_Button.H */,
C9B9CA591062DFB30032F684 /* Fl_Round_Clock.H */,
C9B9CA5A1062DFB30032F684 /* Fl_Scroll.H */,
C9B9CA5B1062DFB30032F684 /* Fl_Scrollbar.H */,
C9B9CA5C1062DFB30032F684 /* Fl_Secret_Input.H */,
C9B9CA5D1062DFB30032F684 /* Fl_Select_Browser.H */,
C9B9CA5E1062DFB30032F684 /* Fl_Shared_Image.H */,
C9B9CA5F1062DFB30032F684 /* fl_show_colormap.H */,
C9B9CA601062DFB30032F684 /* fl_show_input.H */,
C9B9CA611062DFB30032F684 /* Fl_Simple_Counter.H */,
C9B9CA621062DFB30032F684 /* Fl_Single_Window.H */,
C9B9CA631062DFB30032F684 /* Fl_Slider.H */,
C9B9CA641062DFB30032F684 /* Fl_Spinner.H */,
C9B9CA651062DFB30032F684 /* Fl_Sys_Menu_Bar.H */,
C9B9CA661062DFB30032F684 /* Fl_Tabs.H */,
C9B9CA671062DFB30032F684 /* Fl_Text_Buffer.H */,
C9B9CA681062DFB30032F684 /* Fl_Text_Display.H */,
C9B9CA691062DFB30032F684 /* Fl_Text_Editor.H */,
C9B9CA6A1062DFB30032F684 /* Fl_Tile.H */,
C9B9CA6B1062DFB30032F684 /* Fl_Tiled_Image.H */,
C9B9CA6C1062DFB30032F684 /* Fl_Timer.H */,
C9B9CA6D1062DFB30032F684 /* Fl_Toggle_Button.H */,
C9B9CA6E1062DFB30032F684 /* Fl_Toggle_Light_Button.H */,
C9B9CA6F1062DFB30032F684 /* Fl_Toggle_Round_Button.H */,
C9B9CA701062DFB30032F684 /* Fl_Tooltip.H */,
C9B9CA711062DFB30032F684 /* fl_utf8.h */,
C9B9CA721062DFB30032F684 /* Fl_Valuator.H */,
C9B9CA731062DFB30032F684 /* Fl_Value_Input.H */,
C9B9CA741062DFB30032F684 /* Fl_Value_Output.H */,
C9B9CA751062DFB30032F684 /* Fl_Value_Slider.H */,
C9B9CA761062DFB30032F684 /* Fl_Widget.H */,
C9B9CA771062DFB30032F684 /* Fl_Window.H */,
C9B9CA781062DFB30032F684 /* Fl_Wizard.H */,
C9B9CA791062DFB30032F684 /* Fl_XBM_Image.H */,
C9B9CA7A1062DFB30032F684 /* Fl_XPM_Image.H */,
C9B9CA7B1062DFB30032F684 /* Fl.H */,
C9B9CA7C1062DFB30032F684 /* forms.H */,
C9B9CA7D1062DFB30032F684 /* gl_draw.H */,
C9B9CA7E1062DFB30032F684 /* gl.h */,
C9B9CA7F1062DFB30032F684 /* gl2opengl.h */,
C9B9CA801062DFB30032F684 /* glu.h */,
C9B9CA811062DFB30032F684 /* glut.H */,
C9B9CA821062DFB30032F684 /* mac.H */,
C9B9CA831062DFB30032F684 /* math.h */,
C9B9CA841062DFB30032F684 /* names.h */,
C9B9CA851062DFB30032F684 /* win32.H */,
C9B9CA861062DFB30032F684 /* x.H */,
C9B9CA871062DFB30032F684 /* Xutf8.h */,
);
name = "Library Headers";
sourceTree = "<group>";
};
C9C8737D0DD7773200A9793F /* Fluid Sources */ = {
isa = PBXGroup;
children = (

View File

@ -235,7 +235,7 @@ int Fl_Menu_Item::add(
^ - Control
\endverbatim
Text shortcuts are converted to integer shortcut by calling
int fl_old_shortcut(const char*).
Fl_Shortcut fl_old_shortcut(const char*).
\par callback
The callback to invoke when this menu item is selected.

View File

@ -39,7 +39,7 @@
// It also checks against the first character of Fl::event_text(),
// and zero for FL_SHIFT means "don't care".
// This allows punctuation shortcuts like "#" to work (rather than
// calling it "shift+3")
// calling it "shift+3" on a US keyboard)
#include <FL/Fl.H>
#include <FL/Fl_Widget.H>
@ -58,19 +58,12 @@
be confused with
Fl_Widget::test_shortcut().
*/
int Fl::test_shortcut(int shortcut) {
int Fl::test_shortcut(Fl_Shortcut shortcut) {
if (!shortcut) return 0;
int v = shortcut & 0xffff;
#ifdef __APPLE__
if (v > 32 && v < 0x7f || v >= 0x80 && v <= 0xff) {
#else
// most X11 use MSWindows Latin-1 if set to Western encoding, so 0x80 to 0xa0 are defined
if (v > 32 && v < 0x7f || v >= 0x80 && v <= 0xff) {
#endif
if (isupper(v)) {
shortcut |= FL_SHIFT;
}
Fl_Char v = shortcut & FL_KEY_MASK;
if (fl_tolower(v)!=v) {
shortcut |= FL_SHIFT;
}
int shift = Fl::event_state();
@ -81,17 +74,18 @@ int Fl::test_shortcut(int shortcut) {
// these three must always be correct:
if (mismatch&(FL_META|FL_ALT|FL_CTRL)) return 0;
int key = shortcut & 0xffff;
Fl_Char key = shortcut & FL_KEY_MASK;
// if shift is also correct, check for exactly equal keysyms:
if (!(mismatch&(FL_SHIFT)) && key == Fl::event_key()) return 1;
// try matching ascii, ignore shift:
if (key == event_text()[0]) return 1;
// try matching utf8, ignore shift:
Fl_Char firstChar = fl_utf8decode(Fl::event_text(), Fl::event_text()+Fl::event_length(), 0);
if (key==firstChar) return 1;
// kludge so that Ctrl+'_' works (as opposed to Ctrl+'^_'):
if ((shift&FL_CTRL) && key >= 0x3f && key <= 0x5F
&& event_text()[0]==(key^0x40)) return 1;
&& firstChar==(key^0x40)) return 1; // firstChar should be within a-z
return 0;
}
@ -180,7 +174,7 @@ static Keyname table[] = {
\param [in] shortcut the integer value containing the ascii charcter or extended keystroke plus modifiers
\return a pointer to a static buffer containing human readable text for the shortcut
*/
const char* fl_shortcut_label(int shortcut) {
const char* fl_shortcut_label(Fl_Shortcut shortcut) {
return fl_shortcut_label(shortcut, 0L);
}
@ -190,23 +184,17 @@ const char* fl_shortcut_label(int shortcut) {
\param [in] shortcut the integer value containing the ascii charcter or extended keystroke plus modifiers
\param [in] eom if this pointer is set, it will receive a pointer to the end of the modifier text
\return a pointer to a static buffer containing human readable text for the shortcut
\see fl_shortcut_label(int shortcut)
\see fl_shortcut_label(Fl_Shortcut shortcut)
*/
const char* fl_shortcut_label(int shortcut, const char **eom) {
const char* fl_shortcut_label(Fl_Shortcut shortcut, const char **eom) {
static char buf[20];
char *p = buf;
if (eom) *eom = p;
if (!shortcut) {*p = 0; return buf;}
// fix upper case shortcuts
int v = shortcut & 0xffff;
#ifdef __APPLE__
if (v > 32 && v < 0x7f || v >= 0x80 && v <= 0xff) {
#else
if (v > 32 && v < 0x7f || v >= 0xa0 && v <= 0xff) {
#endif
if (isupper(v)) {
shortcut |= FL_SHIFT;
}
Fl_Char v = shortcut & FL_KEY_MASK;
if (fl_tolower(v)!=v) {
shortcut |= FL_SHIFT;
}
#ifdef __APPLE__
// this column contains utf8 characters - v
@ -221,7 +209,7 @@ const char* fl_shortcut_label(int shortcut, const char **eom) {
if (shortcut & FL_CTRL) {strcpy(p,"Ctrl+"); p += 5;}
#endif // __APPLE__
if (eom) *eom = p;
int key = shortcut & 0xFFFF;
Fl_Char key = shortcut & FL_KEY_MASK;
#if defined(WIN32) || defined(__APPLE__) // if not X
if (key >= FL_F && key <= FL_F_Last) {
*p++ = 'F';
@ -234,7 +222,7 @@ const char* fl_shortcut_label(int shortcut, const char **eom) {
while (a < b) {
int c = (a+b)/2;
if (table[c].key == key) {
if (p > buf) {
if (p > buf) {
strcpy(p,table[c].name);
return buf;
} else {
@ -252,7 +240,7 @@ const char* fl_shortcut_label(int shortcut, const char **eom) {
*p++ = uchar(key & 127);
} else {
// if none found, use the keystroke as a match:
*p++ = uchar(toupper(key & 255));
p += fl_utf8encode(fl_toupper(key), p);
}
}
*p = 0;
@ -262,7 +250,11 @@ const char* fl_shortcut_label(int shortcut, const char **eom) {
if (key == FL_Enter || key == '\r') q="Enter"; // don't use Xlib's "Return":
else if (key > 32 && key < 0x100) q = 0;
else q = XKeysymToString(key);
if (!q) {*p++ = uchar(toupper(key & 255)); *p = 0; return buf;}
if (!q) {
p += fl_utf8encode(fl_toupper(key), p);
*p = 0;
return buf;
}
if (p > buf) {
strcpy(p,q);
return buf;
@ -278,9 +270,9 @@ const char* fl_shortcut_label(int shortcut, const char **eom) {
/**
Emulation of XForms named shortcuts.
*/
int fl_old_shortcut(const char* s) {
Fl_Shortcut fl_old_shortcut(const char* s) {
if (!s || !*s) return 0;
int n = 0;
Fl_Shortcut n = 0;
if (*s == '#') {n |= FL_ALT; s++;}
if (*s == '+') {n |= FL_SHIFT; s++;}
if (*s == '^') {n |= FL_CTRL; s++;}
@ -290,14 +282,14 @@ int fl_old_shortcut(const char* s) {
// Tests for &x shortcuts in button labels:
char Fl_Widget::label_shortcut(const char *t) {
Fl_Shortcut Fl_Widget::label_shortcut(const char *t) {
if (!t) return 0;
for (;;) {
if (*t==0) return 0;
if (*t=='&') {
char s = t[1];
Fl_Shortcut s = fl_utf8decode(t+1, 0, 0);
if (s==0) return 0;
else if (s=='&') t++;
else if (s==(Fl_Char)'&') t++;
else return s;
}
t++;
@ -309,8 +301,9 @@ int Fl_Widget::test_shortcut(const char *t) {
// on MSWindows, users expect shortcuts to work only when the Alt modifier is pressed
if (Fl::event_state(FL_ALT)==0) return 0;
#endif
char c = Fl::event_text()[0];
if (!c || !t) return 0;
if (!t) return 0;
Fl_Shortcut c = fl_utf8decode(Fl::event_text(), Fl::event_text()+Fl::event_length(), 0);
if (!c) return 0;
if (c == label_shortcut(t))
return 1;
return 0;

View File

@ -145,11 +145,13 @@ Fl_Menu_Item menutable[] = {
{"Sharp Ess",0x0000df},
{"A Umlaut",0x0000c4},
{"a Umlaut",0x0000e4},
{"Euro currency",0x0020ac},
{"the &ü Umlaut"},
{"the capital &Ü"},
{"convert ¥ to &£"},
{"convert £ to &¥"},
{"Euro currency",FL_COMMAND+0x0020ac},
{"the &\xc3\xbc Umlaut"}, // &uuml;
{"the capital &\xc3\x9c"}, // &Uuml;
{"convert \xc2\xa5 to &\xc2\xa3"}, // Yen to GBP
{"convert \xc2\xa5 to &\xe2\x82\xac"}, // Yen to Euro
{"Hangul character Sios &\xe3\x85\x85"},
{"Hangul character Cieuc", 0x003148},
{0},
{"E&mpty",0,0,0,FL_SUBMENU},
{0},