]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wxExtDialog and sample.
authorRobert Roebling <robert@roebling.de>
Sat, 3 Jul 1999 16:40:54 +0000 (16:40 +0000)
committerRobert Roebling <robert@roebling.de>
Sat, 3 Jul 1999 16:40:54 +0000 (16:40 +0000)
  Tried to make defs.h slightly more readable, also
    found some wrong flags then.
  Updated testconf.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

39 files changed:
include/wx/Makefile.am
include/wx/defs.h
include/wx/extdlg.h [new file with mode: 0644]
include/wx/generic/Makefile.am
include/wx/generic/extdlgg.h [new file with mode: 0644]
include/wx/generic/gridg.h
include/wx/generic/msgdlgg.h
include/wx/gtk/info.xpm
include/wx/gtk/statline.h
include/wx/gtk1/info.xpm
include/wx/gtk1/statline.h
samples/dialogs/dialogs.cpp
samples/dialogs/dialogs.h
samples/internat/Makefile.am
samples/layout/Makefile.am
samples/listctrl/Makefile.am
samples/mdi/Makefile.am
samples/memcheck/Makefile.am
samples/minifram/Makefile.am
samples/notebook/Makefile.am
samples/png/Makefile.am
samples/printing/Makefile.am
samples/proplist/Makefile.am
samples/resource/Makefile.am
samples/sashtest/Makefile.am
samples/scroll/Makefile.am
samples/splitter/Makefile.am
samples/text/Makefile.am
samples/thread/Makefile.am
samples/toolbar/Makefile.am
samples/treectrl/Makefile.am
samples/typetest/Makefile.am
samples/typetest/typetest.cpp
samples/validate/Makefile.am
samples/wxpoem/Makefile.am
samples/wxsocket/Makefile.am
src/generic/extdlgg.cpp [new file with mode: 0644]
src/gtk/Makefile.am
src/gtk1/Makefile.am

index dfba90022ecfbe78c90670ee52e928e0751bfc27..e9bcd162bdb16eceff3969f35f102690fe5b9bd5 100644 (file)
@@ -57,6 +57,7 @@ wx_include_HEADERS = \
  dynlib.h \
  event.h \
  expr.h \
+ extdlg.h \
  file.h \
  fileconf.h \
  filedlg.h \
index a61061304a34aa06974a001b5fa8a985882433b5..679247afa28dab6260a1cec561881ca70c11ccbc 100644 (file)
@@ -372,6 +372,39 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse;
 // Callback function type definition
 typedef void (*wxFunction) (wxObject&, wxEvent&);
 
+// ----------------------------------------------------------------------------
+// OS mnemonics -- Identify the running OS (useful for Windows)
+// ----------------------------------------------------------------------------
+
+// Not all platforms are currently available or supported
+enum
+{
+  wxUNKNOWN_PLATFORM,
+  wxCURSES,                 // Text-only CURSES
+  wxXVIEW_X,                // Sun's XView OpenLOOK toolkit
+  wxMOTIF_X,                // OSF Motif 1.x.x
+  wxCOSE_X,                 // OSF Common Desktop Environment
+  wxNEXTSTEP,               // NeXTStep
+  wxMACINTOSH,              // Apple System 7
+  wxGTK,                    // GTK on X
+  wxGTK_WIN32,              // GTK on Win32
+  wxGTK_OS2,                // GTK on OS/2
+  wxGTK_BEOS,               // GTK on BeOS
+  wxQT,                     // Qt
+  wxGEOS,                   // GEOS
+  wxOS2_PM,                 // OS/2 Workplace
+  wxWINDOWS,                // Windows or WfW
+  wxPENWINDOWS,             // Windows for Pen Computing
+  wxWINDOWS_NT,             // Windows NT
+  wxWIN32S,                 // Windows 32S API
+  wxWIN95,                  // Windows 95
+  wxWIN386,                 // Watcom 32-bit supervisor modus
+  wxMGL_UNIX,               // MGL with direct hardware access
+  wxMGL_X,                  // MGL on X 
+  wxMGL_WIN32,              // MGL on Win32
+  wxMGL_OS2,                // MGL on OS/2
+};
+
 // ----------------------------------------------------------------------------
 // machine specific settings
 // ----------------------------------------------------------------------------
@@ -411,10 +444,11 @@ typedef  int   unsigned  wxUint32;
 
 #if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXOS2__)
   #if defined(SIZEOF_INT)
-      typedef  short   signed  wxInt16;
-      typedef  short unsigned  wxUint16;
-      typedef  int     signed  wxInt32;
-      typedef  int   unsigned  wxUint32;
+    /* well, this shouldn't happen... */
+    typedef  short   signed  wxInt16;
+    typedef  short unsigned  wxUint16;
+    typedef  int     signed  wxInt32;
+    typedef  int   unsigned  wxUint32;
   #else
     typedef  short   signed  wxInt16;
     typedef  short unsigned  wxUint16;
@@ -506,27 +540,27 @@ typedef  wxUint16        wxWord;
 /*
  * Window (Frame/dialog/subwindow/panel item) style flags
  */
-#define wxVSCROLL           0x80000000
-#define wxHSCROLL           0x40000000
-#define wxCAPTION           0x20000000
+#define wxVSCROLL               0x80000000
+#define wxHSCROLL               0x40000000
+#define wxCAPTION               0x20000000
 
 // New styles
-#define wxDOUBLE_BORDER     0x10000000
-#define wxSUNKEN_BORDER     0x08000000
-#define wxRAISED_BORDER     0x04000000
-#define wxBORDER            0x02000000
-#define wxSIMPLE_BORDER     wxBORDER
-#define wxSTATIC_BORDER     0x01000000
-#define wxTRANSPARENT_WINDOW 0x00100000
-#define wxNO_BORDER         0x00200000
-
-#define wxUSER_COLOURS      0x00800000
+#define wxDOUBLE_BORDER         0x10000000
+#define wxSUNKEN_BORDER         0x08000000
+#define wxRAISED_BORDER         0x04000000
+#define wxBORDER                0x02000000
+#define wxSIMPLE_BORDER         wxBORDER
+#define wxSTATIC_BORDER         0x01000000
+#define wxTRANSPARENT_WINDOW    0x00100000
+#define wxNO_BORDER             0x00200000
+
+#define wxUSER_COLOURS          0x00800000
                                  // Override CTL3D etc. control colour processing to
                                  // allow own background colour
                                  // OBSOLETE - use wxNO_3D instead
-#define wxNO_3D             0x00800000
+#define wxNO_3D                 0x00800000
                                  // Override CTL3D or native 3D styles for children
-#define wxCLIP_CHILDREN     0x00400000
+#define wxCLIP_CHILDREN         0x00400000
                                  // Clip children when painting, which reduces flicker in
                                  // e.g. frames and splitter windows, but can't be used in
                                  // a panel where a static box must be 'transparent' (panel
@@ -534,24 +568,18 @@ typedef  wxUint16        wxWord;
 
 // Add this style to a panel to get tab traversal working
 // outside of dialogs.
-#define wxTAB_TRAVERSAL     0x00080000
+#define wxTAB_TRAVERSAL         0x00080000
 
 // Add this style if the control wants to get all keyboard messages (under
 // Windows, it won't normally get the dialog navigation key events)
-#define wxWANTS_CHARS       0x00040000
-
-// Orientations
-enum wxOrientation
-{
-    wxHORIZONTAL = 0x01,
-    wxVERTICAL   = 0x02,
-    wxBOTH       = (wxVERTICAL | wxHORIZONTAL)
-};
+#define wxWANTS_CHARS           0x00040000
 
-#define wxCENTER_FRAME   0x04  /* centering into frame rather than screen */
+// Make window retained (mostly Motif, I think)
+#define wxRETAINED              0x0002000
+#define wxBACKINGSTORE          wxRETAINED
 
 /*
- * Frame/dialog style flags
+ * wxFrame/wxDialog style flags
  */
 #define wxSTAY_ON_TOP           0x8000
 #define wxICONIZE               0x4000
@@ -567,7 +595,7 @@ enum wxOrientation
 #define wxRESIZE_BORDER         0x0040
 #define wxDIALOG_MODAL          0x0020
 #define wxDIALOG_MODELESS       0x0000
-/* Add for normal Windows frame behaviour */
+// Add for normal Windows frame behaviour
 #define wxFRAME_FLOAT_ON_PARENT 0x0020
 
 
@@ -575,7 +603,8 @@ enum wxOrientation
 #define wxDEFAULT_FRAME wxDEFAULT_FRAME_STYLE
 #endif
 
-#define wxDEFAULT_FRAME_STYLE    (wxSYSTEM_MENU|wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN)
+#define wxDEFAULT_FRAME_STYLE \
+  (wxSYSTEM_MENU | wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN)
 
 #ifdef __WXMSW__
 #   define wxDEFAULT_DIALOG_STYLE  (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME)
@@ -585,25 +614,30 @@ enum wxOrientation
 #   define wxDEFAULT_DIALOG_STYLE  (wxCAPTION)
 #endif
 
-
 /*
- * Subwindow style flags
+ * wxExtDialog style flags
  */
-#define wxRETAINED          0x0001
-#define wxBACKINGSTORE      wxRETAINED
-// wxCanvas or wxPanel can optionally have a thick frame under MS Windows.
-// #define wxTHICK_FRAME       0x1000
+#define wxED_CLIENT_MARGIN      0x0004
+#define wxED_BUTTONS_BOTTOM     0x0000  // has no effect
+#define wxED_BUTTONS_RIGHT      0x0002
+#define wxED_STATIC_LINE        0x0001
+
+#if defined(__WXMSW__) || defined(__WXMAC__)
+#   define wxEXT_DIALOG_STYLE  (wxDEFAULT_DIALOG_STYLE|wxED_CLIENT_MARGIN)
+#else
+#   define wxEXT_DIALOG_STYLE  (wxDEFAULT_DIALOG_STYLE|wxED_CLIENT_MARGIN|wxED_STATIC_LINE)
+#endif
 
 /*
  * wxToolBar style flags
  */
-#define wxTB_3DBUTTONS      0x8000
-#define wxTB_HORIZONTAL     0x0002
-#define wxTB_VERTICAL       0x0004
+#define wxTB_3DBUTTONS          0x8000
+#define wxTB_HORIZONTAL         0x0002
+#define wxTB_VERTICAL           0x0004
 // Flatbar/Coolbar under Win98/ GTK 1.2
-#define wxTB_FLAT           0x0008
+#define wxTB_FLAT               0x0008
 // use native docking under GTK
-#define wxTB_DOCKABLE       0x0010
+#define wxTB_DOCKABLE           0x0010
 
 /*
  * wxMenuBar style flags
@@ -665,9 +699,8 @@ enum wxOrientation
 /*
  * wxRadioBox/wxRadioButton style flags
  */
-
 // New, more intuitive names to specify majorDim argument
-
 // Same as wxRA_HORIZONTAL
 #define wxRA_SPECIFY_COLS   0x0001
 // Same as wxRA_VERTICAL
@@ -684,7 +717,7 @@ enum wxOrientation
 #define wxGA_PROGRESSBAR     0x0004
 #define wxGA_HORIZONTAL      wxHORIZONTAL
 #define wxGA_VERTICAL        wxVERTICAL
-/* Windows only */
+// Windows only
 #define wxGA_SMOOTH          0x0008
 
 /*
@@ -759,7 +792,6 @@ enum wxOrientation
 /*
  * wxSpinButton flags
  */
-
 #define wxSP_VERTICAL       0x0004
 #define wxSP_HORIZONTAL     0x0008
 #define wxSP_ARROW_KEYS     0x0010
@@ -768,7 +800,6 @@ enum wxOrientation
 /*
  * wxSplitterWindow flags
  */
-
 #define wxSP_NOBORDER       0x0000
 #define wxSP_3D             0x0004
 #define wxSP_BORDER         0x0008
@@ -778,49 +809,181 @@ enum wxOrientation
 /*
  * wxFrame extra flags
  */
-
 // No title on taskbar
 #define wxFRAME_TOOL_WINDOW 0x0004
 
 /*
  * wxTabCtrl flags
  */
-
-#define wxTC_MULTILINE     0x0000
-#define wxTC_RIGHTJUSTIFY  0x0004
-#define wxTC_FIXEDWIDTH    0x0008
-#define wxTC_OWNERDRAW     0x0010
+#define wxTC_MULTILINE        0x0000
+#define wxTC_RIGHTJUSTIFY     0x0004
+#define wxTC_FIXEDWIDTH       0x0008
+#define wxTC_OWNERDRAW        0x0010
 
 /*
  * wxNotebook flags
  */
-#define wxNB_FIXEDWIDTH    0x0008
+#define wxNB_FIXEDWIDTH       0x0008
 
 /*
  * wxStatusBar95 flags
  */
-
-#define wxST_SIZEGRIP       0x0002
+#define wxST_SIZEGRIP         0x0002
 
 /*
  * wxStaticLine flags
  */
-#define wxLI_HORIZONTAL      wxHORIZONTAL
-#define wxLI_VERTICAL        wxVERTICAL
+#define wxLI_HORIZONTAL         wxHORIZONTAL
+#define wxLI_VERTICAL           wxVERTICAL
 
 /*
  * wxProgressDialog flags
  */
-#define wxPD_CAN_ABORT      0x0001
-#define wxPD_APP_MODAL      0x0002
-#define wxPD_AUTO_HIDE      0x0004
-#define wxPD_ELAPSED_TIME   0x0008
-#define wxPD_ESTIMATED_TIME 0x0010
-#define wxPD_REMAINING_TIME 0x0020
+#define wxPD_CAN_ABORT          0x0001
+#define wxPD_APP_MODAL          0x0002
+#define wxPD_AUTO_HIDE          0x0004
+#define wxPD_ELAPSED_TIME       0x0008
+#define wxPD_ESTIMATED_TIME     0x0010
+#define wxPD_REMAINING_TIME     0x0020
 
 /*
- * GDI descriptions
+ * extended dialog specifiers. these values are stored in a different 
+ * flag and thus do not overlap with other style flags. note that these
+ * values do not correspond to the return values of the dialogs (for
+ * those values, look at the wxID_XXX defines). 
  */
+#define wxOK                    0x00000001
+#define wxYES_NO                0x00000002
+#define wxCANCEL                0x00000004
+#define wxYES                   0x00000008
+#define wxNO                    0x00000010
+#define wxNO_DEFAULT            0x00000020
+#define wxYES_DEFAULT           0x00000000  // has no effect
+
+#define wxICON_EXCLAMATION      0x00000040
+#define wxICON_HAND             0x00000080
+#define wxICON_QUESTION         0x00000100
+#define wxICON_INFORMATION      0x00000200
+#define wxICON_STOP             wxICON_HAND
+#define wxICON_ASTERISK         wxICON_INFORMATION
+#define wxICON_MASK             (0x00000040|0x00000080|0x00000100|0x00000200)
+
+#define wxCENTRE                0x00000400
+#define wxCENTER                wxCENTRE
+
+#define  wxFORWARD              0x00000800
+#define  wxBACKWARD             0x00001000
+#define  wxRESET                0x00002000
+#define  wxHELP                 0x00004000
+#define  wxMORE                 0x00008000
+#define  wxSETUP                0x00010000
+
+// ----------------------------------------------------------------------------
+// standard IDs
+// ----------------------------------------------------------------------------
+
+// Standard menu IDs
+#define wxID_LOWEST             4999
+
+#define wxID_OPEN               5000
+#define wxID_CLOSE              5001
+#define wxID_NEW                5002
+#define wxID_SAVE               5003
+#define wxID_SAVEAS             5004
+#define wxID_REVERT             5005
+#define wxID_EXIT               5006
+#define wxID_UNDO               5007
+#define wxID_REDO               5008
+#define wxID_HELP               5009
+#define wxID_PRINT              5010
+#define wxID_PRINT_SETUP        5011
+#define wxID_PREVIEW            5012
+#define wxID_ABOUT              5013
+#define wxID_HELP_CONTENTS      5014
+#define wxID_HELP_COMMANDS      5015
+#define wxID_HELP_PROCEDURES    5016
+#define wxID_HELP_CONTEXT       5017
+
+#define wxID_CUT                5030
+#define wxID_COPY               5031
+#define wxID_PASTE              5032
+#define wxID_CLEAR              5033
+#define wxID_FIND               5034
+#define wxID_DUPLICATE          5035
+#define wxID_SELECTALL          5036
+
+#define wxID_FILE1              5050
+#define wxID_FILE2              5051
+#define wxID_FILE3              5052
+#define wxID_FILE4              5053
+#define wxID_FILE5              5054
+#define wxID_FILE6              5055
+#define wxID_FILE7              5056
+#define wxID_FILE8              5057
+#define wxID_FILE9              5058
+
+// Standard button IDs
+#define wxID_OK                 5100
+#define wxID_CANCEL             5101
+#define wxID_APPLY              5102
+#define wxID_YES                5103
+#define wxID_NO                 5104
+#define wxID_STATIC             5105
+#define wxID_FORWARD            5106
+#define wxID_BACKWARD           5107
+#define wxID_DEFAULT            5108
+#define wxID_MORE               5109
+#define wxID_SETUP              5110
+#define wxID_RESET              5111
+
+#define wxID_HIGHEST            5999
+
+// ----------------------------------------------------------------------------
+// Orientations and directions
+// ----------------------------------------------------------------------------
+
+enum wxOrientation
+{
+    wxHORIZONTAL              = 0x0001,
+    wxVERTICAL                = 0x0002,
+    wxBOTH                    = (wxVERTICAL | wxHORIZONTAL)
+};
+
+enum wxDirection
+{
+    wxLEFT                    = 0x0010,
+    wxRIGHT                   = 0x0020,
+    wxUP                      = 0x0040,
+    wxDOWN                    = 0x0080
+};
+
+// wxCENTRE                   = 0x0400 (defined above)
+
+// centering into frame rather than screen 
+#define wxCENTER_FRAME          0x0004  
+
+
+// ----------------------------------------------------------------------------
+// Possible SetSize flags
+// ----------------------------------------------------------------------------
+
+// Use internally-calculated width if -1
+#define wxSIZE_AUTO_WIDTH       0x0001
+// Use internally-calculated height if -1
+#define wxSIZE_AUTO_HEIGHT      0x0002
+// Use internally-calculated width and height if each is -1
+#define wxSIZE_AUTO             (wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT)
+// Ignore missing (-1) dimensions (use existing).
+// For readability only: test for wxSIZE_AUTO_WIDTH/HEIGHT in code.
+#define wxSIZE_USE_EXISTING     0x0000
+// Allow -1 as a valid position
+#define wxSIZE_ALLOW_MINUS_ONE  0x0004
+// Don't do parent client adjustments (for implementation only)
+#define wxSIZE_NO_ADJUSTMENTS   0x0008
+
+// ----------------------------------------------------------------------------
+// GDI descriptions
+// ----------------------------------------------------------------------------
 
 enum {
 // Text font families
@@ -898,56 +1061,20 @@ typedef enum
   wxSRC_AND     // source _bitmap_ AND destination
 } form_ops_t;
 
-// Flood styles
+/* Flood styles */
 #define  wxFLOOD_SURFACE   1
 #define  wxFLOOD_BORDER    2
 
-// Polygon filling mode
+/* Polygon filling mode */
 #define  wxODDEVEN_RULE    1
 #define  wxWINDING_RULE    2
 
-// ToolPanel in wxFrame
+/* ToolPanel in wxFrame */
 #define    wxTOOL_TOP       1
 #define    wxTOOL_BOTTOM       2
 #define    wxTOOL_LEFT       3
 #define    wxTOOL_RIGHT       4
 
-// Dialog specifiers/return values
-
-#define wxOK                0x0001
-#define wxYES_NO            0x0002
-#define wxCANCEL            0x0004
-#define wxYES               0x0008
-#define wxNO                0x0010
-#define wxNO_DEFAULT        0x0020
-#define wxYES_DEFAULT       0x0000  // has no effect
-#define wxICON_EXCLAMATION  0x0040
-#define wxICON_HAND         0x0080
-#define wxICON_QUESTION     0x0100
-#define wxICON_INFORMATION  0x0200
-
-#define wxICON_STOP         wxICON_HAND
-#define wxICON_ASTERISK     wxICON_INFORMATION
-#define wxICON_MASK         (0x0040|0x0080|0x0100|0x0200)
-
-#define wxCENTRE            0x0200
-#define wxCENTER wxCENTRE
-
-// Possible SetSize flags
-
-// Use internally-calculated width if -1
-#define wxSIZE_AUTO_WIDTH       0x0001
-// Use internally-calculated height if -1
-#define wxSIZE_AUTO_HEIGHT      0x0002
-// Use internally-calculated width and height if each is -1
-#define wxSIZE_AUTO             (wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT)
-// Ignore missing (-1) dimensions (use existing).
-// For readability only: test for wxSIZE_AUTO_WIDTH/HEIGHT in code.
-#define wxSIZE_USE_EXISTING     0x0000
-// Allow -1 as a valid position
-#define wxSIZE_ALLOW_MINUS_ONE  0x0004
-// Don't do parent client adjustments (for implementation only)
-#define wxSIZE_NO_ADJUSTMENTS   0x0008
 
 enum wxDataFormatId
 {
@@ -1083,78 +1210,6 @@ enum wxKeyCode
   WXK_NUMPAD_DIVIDE
 };
 
-/* OS mnemonics -- Identify the running OS (useful for Windows)
- * [Not all platforms are currently available or supported] */
-enum
-{
-  wxUNKNOWN_PLATFORM,
-  wxCURSES,                 // Text-only CURSES
-  wxXVIEW_X,                // Sun's XView OpenLOOK toolkit
-  wxMOTIF_X,                // OSF Motif 1.x.x
-  wxCOSE_X,                 // OSF Common Desktop Environment
-  wxNEXTSTEP,               // NeXTStep
-  wxMACINTOSH,              // Apple System 7
-  wxGTK,                    // GTK
-  wxQT,                     // Qt
-  wxGEOS,                   // GEOS
-  wxOS2_PM,                 // OS/2 Workplace
-  wxWINDOWS,                // Windows or WfW
-  wxPENWINDOWS,             // Windows for Pen Computing
-  wxWINDOWS_NT,             // Windows NT
-  wxWIN32S,                 // Windows 32S API
-  wxWIN95,                  // Windows 95
-  wxWIN386                  // Watcom 32-bit supervisor modus
-};
-
-/* Standard menu identifiers */
-#define wxID_LOWEST             4999
-
-#define wxID_OPEN               5000
-#define wxID_CLOSE              5001
-#define wxID_NEW                5002
-#define wxID_SAVE               5003
-#define wxID_SAVEAS             5004
-#define wxID_REVERT             5005
-#define wxID_EXIT               5006
-#define wxID_UNDO               5007
-#define wxID_REDO               5008
-#define wxID_HELP               5009
-#define wxID_PRINT              5010
-#define wxID_PRINT_SETUP        5011
-#define wxID_PREVIEW            5012
-#define wxID_ABOUT              5013
-#define wxID_HELP_CONTENTS      5014
-#define wxID_HELP_COMMANDS      5015
-#define wxID_HELP_PROCEDURES    5016
-#define wxID_HELP_CONTEXT       5017
-
-#define wxID_CUT                5030
-#define wxID_COPY               5031
-#define wxID_PASTE              5032
-#define wxID_CLEAR              5033
-#define wxID_FIND               5034
-#define wxID_DUPLICATE          5035
-#define wxID_SELECTALL          5036
-
-#define wxID_FILE1              5050
-#define wxID_FILE2              5051
-#define wxID_FILE3              5052
-#define wxID_FILE4              5053
-#define wxID_FILE5              5054
-#define wxID_FILE6              5055
-#define wxID_FILE7              5056
-#define wxID_FILE8              5057
-#define wxID_FILE9              5058
-
-#define wxID_OK                 5100
-#define wxID_CANCEL             5101
-#define wxID_APPLY              5102
-#define wxID_YES                5103
-#define wxID_NO                 5104
-#define wxID_STATIC             5105
-
-#define wxID_HIGHEST            5999
-
 // Mapping modes (as per Windows)
 #define wxMM_TEXT             1
 #define wxMM_LOMETRIC         2
@@ -1279,6 +1334,11 @@ typedef enum {
     wxPRINT_MODE_PRINTER = 3    // Send to printer
 } wxPrintMode;
 
+// ---------------------------------------------------------------------------
+// macros that enable wxWindows apps to be compiled in absence of the
+// sytem headers, although some platform specific types are used in the
+// platform specific (implementation) parts of the headers
+// ---------------------------------------------------------------------------
 
 #ifdef __WXMSW__
 // Stand-ins for Windows types, to avoid #including all of windows.h
diff --git a/include/wx/extdlg.h b/include/wx/extdlg.h
new file mode 100644 (file)
index 0000000..3799925
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef _WX_EXTDLG_H_BASE_
+#define _WX_EXTDLG_H_BASE_
+
+#include "wx/generic/extdlgg.h"
+
+#endif
+    // _WX_EXTDLG_H_BASE_
index e5cb5e1ccfc88ff7171e7b68a7c22f4fd540d774..d192e3533e660e950115aaa2f59dab9a7e58cf0e 100644 (file)
@@ -11,6 +11,7 @@ wx_generic_include_HEADERS = \
  colrdlgg.h \
  dcpsg.h \
  dirdlgg.h \
+ extdlgg.h \
  fontdlgg.h \
  gridg.h \
  helpext.h \
diff --git a/include/wx/generic/extdlgg.h b/include/wx/generic/extdlgg.h
new file mode 100644 (file)
index 0000000..7691d1c
--- /dev/null
@@ -0,0 +1,96 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        extdlgg.h
+// Purpose:     Extended Generic dialogs
+// Author:      Robert Roebling
+// Modified by:
+// Created:     01/02/97
+// RCS-ID:      $Id$
+// Copyright:   (c) Robert Roebling
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef __EXTDLGH_G__
+#define __EXTDLGH_G__
+
+#ifdef __GNUG__
+    #pragma interface "extdlgg.h"
+#endif
+
+#include "wx/setup.h"
+#include "wx/dialog.h"
+#include "wx/button.h"
+
+//-----------------------------------------------------------------------------
+// classes
+//-----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxExtDialog;
+class WXDLLEXPORT wxStaticLine;
+
+//-----------------------------------------------------------------------------
+// global data
+//-----------------------------------------------------------------------------
+
+extern const wxChar *wxDialogNameStr;
+
+//-----------------------------------------------------------------------------
+// wxExtDialog
+//-----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxExtDialog: public wxDialog
+{
+    DECLARE_DYNAMIC_CLASS(wxExtDialog)
+
+public:
+    wxExtDialog() {}
+    wxExtDialog( wxWindow *parent, wxWindowID id,
+                 const wxString& title,
+                long extraStyle = (wxOK|wxCANCEL|wxCENTRE),
+                 const wxPoint& pos = wxDefaultPosition, 
+                const wxSize& size = wxDefaultSize,
+                 long style = wxEXT_DIALOG_STYLE,
+                 const wxString &name = wxDialogNameStr );
+    bool Create( wxWindow *parent, wxWindowID id,
+                 const wxString& title,
+                long extraStyle = (wxOK|wxCANCEL|wxCENTRE),
+                 const wxPoint& pos = wxDefaultPosition, 
+                const wxSize& size = wxDefaultSize,
+                 long style = wxEXT_DIALOG_STYLE,
+                 const wxString &name = wxDialogNameStr );
+
+    void SetClientWindow( wxWindow *clientWindow ) 
+        { m_clientWindow = clientWindow; }
+    wxWindow *GetClientWindow() 
+        { return m_clientWindow; }
+
+    void AddButton( wxButton *button );
+
+    void SetDefaultButton( wxWindowID button );
+
+    void EnableButton( wxWindowID button, bool enable=TRUE );
+    bool ButtonIsEnabled( wxWindowID button );
+    
+    wxSize GetButtonAreaSize();
+    
+    void OnSize( wxSizeEvent &event );
+    
+    void OnYes(wxCommandEvent& event);
+    void OnNo(wxCommandEvent& event);
+    void OnCancel(wxCommandEvent& event);
+
+protected:
+    wxWindow      *m_clientWindow;
+    long           m_extraStyle;
+    wxList         m_buttons;
+#if wxUSE_STATLINE
+    wxStaticLine  *m_statLine;
+#endif
+    
+    wxSize LayoutButtons();
+
+private:
+    DECLARE_EVENT_TABLE()
+};
+
+
+#endif
index 01566034322e9916703bcc4c1dd36bce25a633dd..f753026d0069c69a87a5480db857ce00fd206cad 100644 (file)
 #define wxGRID_DEFAULT_VERTICAL_LABEL_WIDTH 40
 #define wxGRID_DEFAULT_HORIZONAL_LABEL_HEIGHT 20
 
-#ifndef wxLEFT
-    #define wxLEFT 0x0400
-#endif
-
-#ifndef wxRIGHT
-    #define wxRIGHT 0x0800
-#endif
-
 #define WXGENERIC_GRID_VERSION  0.5
 
 class WXDLLEXPORT wxGridEvent;
index a545631340a290070112883f1de158054435bcbb..62dddb1b876522384fc50c6dceaf9ce61a562c12 100644 (file)
@@ -38,7 +38,6 @@ public:
     void OnCancel(wxCommandEvent& event);
     
 private:
-    wxList  m_buttons;
     int     m_dialogStyle;
 
 DECLARE_EVENT_TABLE()
index 90efcc8dd961baa3776e8bb27d3b1d4952647f82..e7a9f5f925ce5f0e7e3f7f6f80911e9a75e28d3f 100644 (file)
@@ -1,5 +1,5 @@
 /* XPM */
-static char *info[] = {
+static char *info_xpm[] = {
 /* columns rows colors chars-per-pixel */
 "48 48 478 2",
 "   c Gray0",
index e29e20d5d06f4269794f386a4a633f24f82a28fa..d892e1ab6142cda03e3f3a085995eb5f72a0853f 100644 (file)
 #define __GTKSTATICLINEH__
 
 #ifdef __GNUG__
-    #pragma interface
+#pragma interface
 #endif
 
-#if !wxUSE_STATLINE
-    #error "This file should only be included if wxUSE_STATLINE == 1"
-#endif
+#include "wx/defs.h"
+
+#if wxUSE_STATLINE
 
 #include "wx/object.h"
 #include "wx/list.h"
@@ -47,4 +47,8 @@ public:
             long style = wxLI_HORIZONTAL, const wxString &name = wxStaticTextNameStr );
 };
 
-#endif // __GTKSTATICLINEH__
+#endif 
+  // wxUSE_STATLINE
+  
+#endif 
+  // __GTKSTATICLINEH__
index 90efcc8dd961baa3776e8bb27d3b1d4952647f82..e7a9f5f925ce5f0e7e3f7f6f80911e9a75e28d3f 100644 (file)
@@ -1,5 +1,5 @@
 /* XPM */
-static char *info[] = {
+static char *info_xpm[] = {
 /* columns rows colors chars-per-pixel */
 "48 48 478 2",
 "   c Gray0",
index e29e20d5d06f4269794f386a4a633f24f82a28fa..d892e1ab6142cda03e3f3a085995eb5f72a0853f 100644 (file)
 #define __GTKSTATICLINEH__
 
 #ifdef __GNUG__
-    #pragma interface
+#pragma interface
 #endif
 
-#if !wxUSE_STATLINE
-    #error "This file should only be included if wxUSE_STATLINE == 1"
-#endif
+#include "wx/defs.h"
+
+#if wxUSE_STATLINE
 
 #include "wx/object.h"
 #include "wx/list.h"
@@ -47,4 +47,8 @@ public:
             long style = wxLI_HORIZONTAL, const wxString &name = wxStaticTextNameStr );
 };
 
-#endif // __GTKSTATICLINEH__
+#endif 
+  // wxUSE_STATLINE
+  
+#endif 
+  // __GTKSTATICLINEH__
index 70715bb0754cb1efb91e48831e942981f1c28e18..a3efceb3557f805e51546f9f51e9fb21687b1dbb 100644 (file)
 #include "wx/wx.h"
 #endif
 
-#include <wx/colordlg.h>
-#include <wx/filedlg.h>
-#include <wx/dirdlg.h>
-#include <wx/fontdlg.h>
-#include <wx/choicdlg.h>
-#include <wx/tipdlg.h>
+#include "wx/colordlg.h"
+#include "wx/filedlg.h"
+#include "wx/dirdlg.h"
+#include "wx/fontdlg.h"
+#include "wx/choicdlg.h"
+#include "wx/tipdlg.h"
+#include "wx/extdlg.h"
 
 #define wxTEST_GENERIC_DIALOGS_IN_MSW 0
 
@@ -78,6 +79,7 @@ bool MyApp::OnInit(void)
   file_menu->Append(DIALOGS_MESSAGE_BOX, "&Message box");
   file_menu->Append(DIALOGS_TEXT_ENTRY,  "Text &entry");
   file_menu->Append(DIALOGS_SINGLE_CHOICE,  "&Single choice");
+  file_menu->Append(DIALOGS_EXT_DIALOG,  "&Extended dialog");
   file_menu->AppendSeparator();
   file_menu->Append(DIALOGS_TIP,  "&Tip of the day");
   file_menu->AppendSeparator();
@@ -108,6 +110,42 @@ MyFrame::MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos, co
   wxFrame(parent, -1, title, pos, size)
 {}
 
+void MyFrame::ExtDialog(wxCommandEvent& WXUNUSED(event) )
+{
+    // The standard flags causes this dialog to display a 
+    // wxStaticLine under wxMotif and wxGTK, but none under 
+    // other platforms. Also, it will not be resizable
+    // anywhere.
+    
+    wxExtDialog dialog( this, -1, "Test 1 for wxExtDialog", 
+      wxOK|wxFORWARD|wxBACKWARD );
+
+    dialog.SetClientWindow( new wxTextCtrl( &dialog, -1, "Test", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ) );
+
+    // query minimal recommended size from the buttons
+    dialog.SetSize( dialog.GetButtonAreaSize().x, 170 );
+    
+    dialog.Centre( wxBOTH );
+    dialog.ShowModal();
+    
+    // This dialog uses the standard dialog styles but is also
+    // resizable on all platforms and shows a wxStaticLine on
+    // all platforms.
+    
+    wxExtDialog dialog2( this, -1, "Test 2 for wxExtDialog", 
+      wxOK|wxFORWARD|wxBACKWARD|wxCANCEL, wxDefaultPosition, wxSize(400,170),
+      wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxED_BUTTONS_RIGHT | wxED_STATIC_LINE | wxED_CLIENT_MARGIN );
+
+    dialog2.SetClientWindow( new wxTextCtrl( &dialog2, -1, "Test", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ) );
+
+    // query minimal recommended size from the buttons
+    wxSize min_size( dialog2.GetButtonAreaSize() );
+    dialog2.SetSizeHints( min_size.x + 200, min_size.y );
+    
+    dialog2.Centre( wxBOTH );
+    dialog2.ShowModal();
+}
+
 void MyFrame::ChooseColour(wxCommandEvent& WXUNUSED(event) )
 {
       wxColourData data;
@@ -326,6 +364,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
     EVT_MENU(DIALOGS_FILE_SAVE,                    MyFrame::FileSave)
     EVT_MENU(DIALOGS_DIR_CHOOSE,                MyFrame::DirChoose)
     EVT_MENU(DIALOGS_TIP,                        MyFrame::ShowTip)
+    EVT_MENU(DIALOGS_EXT_DIALOG,                 MyFrame::ExtDialog)
 #if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW
     EVT_MENU(DIALOGS_CHOOSE_COLOUR_GENERIC,        MyFrame::ChooseColourGeneric)
     EVT_MENU(DIALOGS_CHOOSE_FONT_GENERIC,        MyFrame::ChooseFontGeneric)
index 228fd9a5cb3f792a9acea3412fd73c0eae6d9eff..3143996187cc267baeef47d05c677b2c567e7164 100644 (file)
@@ -27,8 +27,8 @@ class MyFrame: public wxFrame
     MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos,
                const wxSize& size);
 
-       void ChooseColour(wxCommandEvent& event);
-       void ChooseFont(wxCommandEvent& event);
+    void ChooseColour(wxCommandEvent& event);
+    void ChooseFont(wxCommandEvent& event);
     void MessageBox(wxCommandEvent& event);
     void SingleChoice(wxCommandEvent& event);
     void TextEntry(wxCommandEvent& event);
@@ -36,13 +36,15 @@ class MyFrame: public wxFrame
     void FileSave(wxCommandEvent& event);
     void DirChoose(wxCommandEvent& event);
     void ShowTip(wxCommandEvent& event);
+    void ExtDialog(wxCommandEvent &event);
 
 #if !defined(__WXMSW__) || wxTEST_GENERIC_DIALOGS_IN_MSW
-       void ChooseColourGeneric(wxCommandEvent& event);
-       void ChooseFontGeneric(wxCommandEvent& event);
+    void ChooseColourGeneric(wxCommandEvent& event);
+    void ChooseFontGeneric(wxCommandEvent& event);
 #endif
-       void OnExit(wxCommandEvent& event);
-DECLARE_EVENT_TABLE()
+    void OnExit(wxCommandEvent& event);
+       
+  DECLARE_EVENT_TABLE()
 };
 
 class MyCanvas: public wxScrolledWindow
@@ -69,6 +71,7 @@ DECLARE_EVENT_TABLE()
 #define DIALOGS_FILE_SAVE                   9
 #define DIALOGS_DIR_CHOOSE                  10
 #define DIALOGS_TIP                         11
+#define DIALOGS_EXT_DIALOG                  12
 
 #endif
 
index f3be440267316041875ab45cb7df8fc92a6229f2..afef5a1203007ca364c36eb7b6832f387b04c88f 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 514640c798733a8f24d981d9daadb40bdf5d5d83..9841ed0f74716e2c8156e0581c636a9fc2c5c13b 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 1d12eb699cbe37215754fda375c9cfd33f3b171f..3af03416f4cd2f5af19bf49e60caf53bc8b1079d 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 7b37310afc6253c90107e32a741e502d0389fe16..26ebada63126b6f3e6e01592b6044c2a2b1ae5b6 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 58bbbcf3bd14c91e73af925eee65180ae66ecf9b..5658a0fe3d11683d75111fe43eb73c9d00d01597 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index d53aac5146d6e8aa2875e1e94cf3dfe9ed8bdb62..3631656b63af822810e328c0b8920ec59be44e3b 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index d53aac5146d6e8aa2875e1e94cf3dfe9ed8bdb62..3631656b63af822810e328c0b8920ec59be44e3b 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index d29b3bdd20052c439b37c99b8ccd21e5e3e42570..d10b94b6985c5b04cfbd7160947bf9da03b6eef0 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 28311d2412596d005230c2374237d2fa84fa924d..73aa8ade601911e1fad5e242fcb64e28224ecaa7 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index d53aac5146d6e8aa2875e1e94cf3dfe9ed8bdb62..3631656b63af822810e328c0b8920ec59be44e3b 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 45bf3c9ee21e4680768f6c85223d75dd66a453ec..1545a26635be3b4b23ba50e7fee4bfa47c43af9e 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 4411f611afb00c37ba8c972bde6577534fc08b45..f2bbd260b174c4d50bbdeaaaec15ad66c081eb41 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index f53b6a3ee05fb33f292cafac08412211dabe2e79..162ff86f4a0b312b50fe263769a70ae4f9d73fed 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index d53aac5146d6e8aa2875e1e94cf3dfe9ed8bdb62..3631656b63af822810e328c0b8920ec59be44e3b 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 5a1a4da9294d5e6062e1e2d3c2bdecabe9d0eaf7..13c58723b2e06c5228488eee1cfab90794195ed7 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index d53aac5146d6e8aa2875e1e94cf3dfe9ed8bdb62..3631656b63af822810e328c0b8920ec59be44e3b 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index d53aac5146d6e8aa2875e1e94cf3dfe9ed8bdb62..3631656b63af822810e328c0b8920ec59be44e3b 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 857353617a1894fe4f44c3a9e402d198eb57de1a..2812685365a86001ebe81264af9654bc1c770d0d 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 255b60146cdfb4956450d0c8fec0411b5b5d97e8..48f57ce02d8aa15432f7be814f4f9d65d995c2c5 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 0859c51c880ae38955e09fb5552bfb580b118f2a..3cc3dc4d83b30485ee22e68a7bbbeb65a6bbd2ef 100644 (file)
@@ -201,15 +201,15 @@ void MyApp::DoStreamDemo(wxCommandEvent& WXUNUSED(event))
     file_output.SeekO( 0 );
     wxDataOutputStream data_output( file_output );
 
-    wxInt32 i32 = 0xFFFFFFFF;
-    tmp.Printf( "Signed int32: %d\n", i32 );
+    wxInt16 i16 = 0xFFFF;
+    tmp.Printf( "Signed int16: %d\n", (int)i16 );
     textCtrl.WriteText( tmp );
-    data_output.Write32( i32 );
+    data_output.Write16( i16 );
     
-    wxUint32 ui32 = 0xFFFFFFFF;
-    tmp.Printf( "Unsigned int32: %u\n", ui32 );
+    wxUint16 ui16 = 0xFFFF;
+    tmp.Printf( "Unsigned int16: %u\n", (unsigned int) ui16 );
     textCtrl.WriteText( tmp );
-    data_output.Write32( ui32 );
+    data_output.Write16( ui16 );
     
     d = 2.01234567890123456789;
     tmp.Printf( "Double: %f\n", d );
@@ -228,12 +228,12 @@ void MyApp::DoStreamDemo(wxCommandEvent& WXUNUSED(event))
     file_input.SeekI( 0 );
     wxDataInputStream data_input( file_input );
 
-    i32 = data_input.Read32();
-    tmp.Printf( "Signed int32: %d\n", i32 );
+    i16 = data_input.Read16();
+    tmp.Printf( "Signed int16: %d\n", (int)i16 );
     textCtrl.WriteText( tmp );
     
-    ui32 = data_input.Read32();
-    tmp.Printf( "Unsigned int32: %u\n", ui32 );
+    ui16 = data_input.Read16();
+    tmp.Printf( "Unsigned int16: %u\n", (unsigned int) ui16 );
     textCtrl.WriteText( tmp );
 
     d = data_input.ReadDouble();
index 95727d078f406c49661096104334de95b2733b55..15d467989a19627c5c17a919b8315469e092564e 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 72506236994386a53be5f94648a468b37da997dd..707a243a853a654b9bdeeec866e8377d6f55ca23 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
index 72b83bc22d657535201df47e449e11d9f69807c2..bb48e0845707a77068d5cd55354ddef70200c8c5 100644 (file)
@@ -1,3 +1,5 @@
+AUTOMAKE_OPTIONS = 1.3 no-dependencies
+
 SUFFIXES = .cpp
 
 DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)
diff --git a/src/generic/extdlgg.cpp b/src/generic/extdlgg.cpp
new file mode 100644 (file)
index 0000000..77bf06c
--- /dev/null
@@ -0,0 +1,360 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        extdlgg.cpp
+// Purpose:     extended generic dialog
+// Author:      Robert Roebling
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Robert Roebling
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef __GNUG__
+#pragma implementation "extdlgg.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include <stdio.h>
+#include "wx/intl.h"
+#include "wx/dialog.h"
+#include "wx/button.h"
+#endif
+
+#if wxUSE_STATLINE
+#include "wx/statline.h"
+#endif
+
+#include "wx/generic/extdlgg.h"
+
+//-----------------------------------------------------------------------------
+// wxExtDialog
+//-----------------------------------------------------------------------------
+
+#define STATIC_LINE_MARGIN   15
+#define CLIENT_AREA_MARGIN   10
+#define BUTTON_AREA_MARGIN   10
+
+#if !USE_SHARED_LIBRARY
+IMPLEMENT_DYNAMIC_CLASS(wxExtDialog, wxDialog)
+
+BEGIN_EVENT_TABLE(wxExtDialog, wxDialog)
+        EVT_SIZE(wxExtDialog::OnSize)
+        EVT_BUTTON(wxID_YES, wxExtDialog::OnYes)
+        EVT_BUTTON(wxID_NO, wxExtDialog::OnNo)
+        EVT_BUTTON(wxID_CANCEL, wxExtDialog::OnCancel)
+END_EVENT_TABLE()
+#endif
+
+wxExtDialog::wxExtDialog( wxWindow *parent, wxWindowID id,
+        const wxString& title, long extraStyle,
+        const wxPoint& pos,  const wxSize& size,
+        long style, const wxString &name )
+{
+    Create( parent, id, title, extraStyle, pos, size, style, name );
+}
+
+bool wxExtDialog::Create( wxWindow *parent, wxWindowID id,
+        const wxString& title, long extraStyle,
+        const wxPoint& pos,  const wxSize& size,
+        long style, const wxString &name )
+{
+    if (!wxDialog::Create( parent, id, title, pos, size, style, name ))
+      return FALSE;
+      
+    m_extraStyle = extraStyle;
+    
+    wxButton *ok = (wxButton *) NULL;
+    wxButton *cancel = (wxButton *) NULL;
+    wxButton *yes = (wxButton *) NULL;
+    wxButton *no = (wxButton *) NULL;
+    
+    
+    if (m_extraStyle & wxYES_NO) 
+    {
+        yes = new wxButton( this, wxID_YES, _("Yes") );
+        m_buttons.Append( yes );
+        no = new wxButton( this, wxID_NO, _("No") );
+        m_buttons.Append( no );
+    }
+
+    if (m_extraStyle & wxYES) 
+    {
+        yes = new wxButton( this, wxID_YES, _("Yes") );
+        m_buttons.Append( yes );
+    }
+
+    if (m_extraStyle & wxNO) 
+    {
+        no = new wxButton( this, wxID_NO, _("No") );
+        m_buttons.Append( no );
+    }
+
+    if (m_extraStyle & wxOK) 
+    {
+        ok = new wxButton( this, wxID_OK, _("OK") );
+        m_buttons.Append( ok );
+    }
+
+    if (m_extraStyle & wxFORWARD) 
+        AddButton( new wxButton( this, wxID_FORWARD, _("Forward")  ) );
+
+    if (m_extraStyle & wxBACKWARD) 
+        AddButton( new wxButton( this, wxID_BACKWARD, _("Backward")  ) );
+
+    if (m_extraStyle & wxSETUP) 
+        AddButton( new wxButton( this, wxID_SETUP, _("Setup")  ) );
+
+    if (m_extraStyle & wxMORE) 
+        AddButton( new wxButton( this, wxID_MORE, _("More..")  ) );
+
+    if (m_extraStyle & wxCANCEL) 
+    {
+        cancel = new wxButton( this, wxID_CANCEL, _("Cancel") );
+        m_buttons.Append( cancel );
+    }
+
+    if ((m_extraStyle & wxNO_DEFAULT) == 0)
+    {
+        if (ok)
+        {
+            ok->SetDefault();
+            ok->SetFocus();
+        }
+        else if (yes)
+        {
+            yes->SetDefault();
+            yes->SetFocus();
+        }
+    }
+    
+#if wxUSE_STATLINE
+    if (style & wxED_STATIC_LINE)
+    {
+        int line_style = wxLI_HORIZONTAL;
+        if (style & wxED_BUTTONS_RIGHT) line_style = wxLI_VERTICAL;
+
+        m_statLine = new wxStaticLine( this, -1, wxDefaultPosition, wxDefaultSize, line_style );
+    }
+    else
+        m_statLine = (wxStaticLine*) NULL;
+#endif
+
+    if (m_extraStyle & wxCENTRE)
+        Centre( wxBOTH );
+    
+    return TRUE;
+}
+
+void wxExtDialog::AddButton( wxButton *button )
+{
+    m_buttons.Append( button );
+}
+
+void wxExtDialog::SetDefaultButton( wxWindowID button )
+{
+    wxNode *node = m_buttons.First();
+    while (node)
+    {
+       wxButton *but = (wxButton*) node->Data();
+       if (but->GetId() == button)
+       {
+           but->SetDefault();
+           but->SetFocus();
+          return;
+       }
+    }
+}
+
+void wxExtDialog::EnableButton( wxWindowID button, bool enable )
+{
+    wxNode *node = m_buttons.First();
+    while (node)
+    {
+       wxButton *but = (wxButton*) node->Data();
+       if (but->GetId() == button)
+       {
+           but->Enable(enable);
+          return;
+       }
+    }
+}
+
+bool wxExtDialog::ButtonIsEnabled( wxWindowID button )
+{
+    wxNode *node = m_buttons.First();
+    while (node)
+    {
+       wxButton *but = (wxButton*) node->Data();
+       if (but->GetId() == button)
+          return but->IsEnabled();
+    }
+    return FALSE;
+}
+
+void wxExtDialog::OnSize( wxSizeEvent &WXUNUSED(event) )
+{
+    wxSize client_size( GetClientSize() );
+    wxSize button_area( LayoutButtons() );
+    
+    if (HasFlag(wxED_BUTTONS_RIGHT))
+        client_size.x -= button_area.x;
+    else
+        client_size.y -= button_area.y;
+
+    if (m_clientWindow)
+    {
+        if (m_windowStyle & wxED_CLIENT_MARGIN)
+         m_clientWindow->SetSize( CLIENT_AREA_MARGIN,
+                                  CLIENT_AREA_MARGIN,
+                                  client_size.x - 2*CLIENT_AREA_MARGIN,
+                                  client_size.y - 2*CLIENT_AREA_MARGIN );
+       else
+          m_clientWindow->SetSize( 0, 0, client_size.x, client_size.y );
+       
+       if (m_clientWindow->GetAutoLayout())
+           m_clientWindow->Layout();
+    }
+}
+
+void wxExtDialog::OnYes(wxCommandEvent& event)
+{
+    EndModal( wxID_YES );
+}
+
+void wxExtDialog::OnNo(wxCommandEvent& event)
+{
+    EndModal( wxID_NO );
+}
+
+void wxExtDialog::OnCancel(wxCommandEvent& event)
+{
+    /* allow cancellation via ESC/Close button except if
+       only YES and NO are specified. */
+    if ((m_extraStyle & wxYES_NO) != wxYES_NO || (m_extraStyle & wxCANCEL))
+    {
+        EndModal( wxID_CANCEL );
+    }
+}
+
+wxSize wxExtDialog::GetButtonAreaSize()
+{
+    if (m_buttons.GetCount() == 0) return wxSize(0,0);
+    
+    wxSize ret(0,0);
+
+    // this routine can be improved to measure the string length
+    // of the button text or the bitmap size if using wxBmpButton
+    // or to query the standard button size somehow.
+    
+    int button_size_and_margin_x = 110;
+    int button_size_and_margin_y = 44;
+       
+    if (m_windowStyle & wxED_BUTTONS_RIGHT)
+    {
+       ret.x = button_size_and_margin_x;
+        ret.y = m_buttons.GetCount()*button_size_and_margin_y + 2*BUTTON_AREA_MARGIN;
+#if wxUSE_STATLINE
+        if (m_statLine)
+           ret.x += STATIC_LINE_MARGIN;
+#endif
+    }
+    else
+    {
+        ret.x = m_buttons.GetCount()*button_size_and_margin_x + 2*BUTTON_AREA_MARGIN;
+       ret.y = button_size_and_margin_y;
+#if wxUSE_STATLINE
+        if (m_statLine)
+           ret.y += STATIC_LINE_MARGIN;
+#endif
+    }
+    
+    return ret;
+}
+
+wxSize wxExtDialog::LayoutButtons()
+{
+    if (m_buttons.GetCount() == 0) return wxSize(0,0);
+    
+    wxSize area_used( GetButtonAreaSize() );
+    wxSize client_area( GetClientSize() );
+    
+    if (m_windowStyle & wxED_BUTTONS_RIGHT)
+    {
+        area_used.y = client_area.y;
+
+        int space_for_each_button = (client_area.y-2*BUTTON_AREA_MARGIN) / m_buttons.GetCount();
+        int n = 0;
+        wxNode *node = m_buttons.First();
+        while (node)
+        {
+            wxButton *button = (wxButton*)node->Data();
+           
+           wxSize button_size( button->GetSize() );
+           if (button_size.x < 80) button_size.x = 80;
+           
+           int center_of_button_y = n*space_for_each_button + space_for_each_button/2;
+           int button_y = BUTTON_AREA_MARGIN + center_of_button_y - button_size.y/2;
+           
+           int center_of_button_x = client_area.x - area_used.x/2;
+           int button_x = center_of_button_x - button_size.x/2;
+           
+            button->SetSize( button_x, button_y, button_size.x, button_size.y );
+           
+            node = node->Next();
+            n++;
+       }
+       
+#if wxUSE_STATLINE
+        if (m_statLine)
+           m_statLine->SetSize( client_area.x - area_used.x, 
+                                0, 
+                                wxStaticLine::GetDefaultSize(), 
+                                client_area.y );
+#endif
+    }
+    else
+    {
+        area_used.x = client_area.x;
+
+        int space_for_each_button = (client_area.x-2*BUTTON_AREA_MARGIN) / m_buttons.GetCount();
+        int n = 0;
+        wxNode *node = m_buttons.First();
+        while (node)
+        {
+            wxButton *button = (wxButton*)node->Data();
+           
+           wxSize button_size( button->GetSize() );
+           if (button_size.x < 80) button_size.x = 80;
+           
+           int center_of_button_x = n*space_for_each_button + space_for_each_button/2;
+           int button_x = BUTTON_AREA_MARGIN + center_of_button_x - button_size.x/2;
+           
+           int center_of_button_y = client_area.y - area_used.y/2;
+           int button_y = center_of_button_y - button_size.y/2;
+           
+            button->SetSize( button_x, button_y, button_size.x, button_size.y );
+           
+            node = node->Next();
+            n++;
+       }
+       
+#if wxUSE_STATLINE
+        if (m_statLine)
+           m_statLine->SetSize( 0, 
+                                client_area.y - area_used.y,
+                                client_area.x, 
+                                wxStaticLine::GetDefaultSize() );
+#endif
+    }
+    
+    return area_used;
+}
+
+
index 2ff1e24db689932514e442197f54982a0fd852d0..3e510bc20b9af4b403f45d40ff8d4630d6816228 100644 (file)
@@ -108,6 +108,7 @@ libwx_gtk_la_SOURCES = \
  colrdlgg.cpp \
  dcpsg.cpp \
  dirdlgg.cpp \
+ extdlgg.cpp \
  fontdlgg.cpp \
  gridg.cpp \
  helpext.cpp \
index 2ff1e24db689932514e442197f54982a0fd852d0..3e510bc20b9af4b403f45d40ff8d4630d6816228 100644 (file)
@@ -108,6 +108,7 @@ libwx_gtk_la_SOURCES = \
  colrdlgg.cpp \
  dcpsg.cpp \
  dirdlgg.cpp \
+ extdlgg.cpp \
  fontdlgg.cpp \
  gridg.cpp \
  helpext.cpp \