Added wxExtDialog and sample.

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
This commit is contained in:
Robert Roebling
1999-07-03 16:40:54 +00:00
parent 4438caf41a
commit 329e86bfde
39 changed files with 832 additions and 220 deletions

View File

@@ -57,6 +57,7 @@ wx_include_HEADERS = \
dynlib.h \ dynlib.h \
event.h \ event.h \
expr.h \ expr.h \
extdlg.h \
file.h \ file.h \
fileconf.h \ fileconf.h \
filedlg.h \ filedlg.h \

View File

@@ -372,6 +372,39 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse;
// Callback function type definition // Callback function type definition
typedef void (*wxFunction) (wxObject&, wxEvent&); 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 // machine specific settings
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -411,10 +444,11 @@ typedef int unsigned wxUint32;
#if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXOS2__) #if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXOS2__)
#if defined(SIZEOF_INT) #if defined(SIZEOF_INT)
typedef short signed wxInt16; /* well, this shouldn't happen... */
typedef short unsigned wxUint16; typedef short signed wxInt16;
typedef int signed wxInt32; typedef short unsigned wxUint16;
typedef int unsigned wxUint32; typedef int signed wxInt32;
typedef int unsigned wxUint32;
#else #else
typedef short signed wxInt16; typedef short signed wxInt16;
typedef short unsigned wxUint16; typedef short unsigned wxUint16;
@@ -506,27 +540,27 @@ typedef wxUint16 wxWord;
/* /*
* Window (Frame/dialog/subwindow/panel item) style flags * Window (Frame/dialog/subwindow/panel item) style flags
*/ */
#define wxVSCROLL 0x80000000 #define wxVSCROLL 0x80000000
#define wxHSCROLL 0x40000000 #define wxHSCROLL 0x40000000
#define wxCAPTION 0x20000000 #define wxCAPTION 0x20000000
// New styles // New styles
#define wxDOUBLE_BORDER 0x10000000 #define wxDOUBLE_BORDER 0x10000000
#define wxSUNKEN_BORDER 0x08000000 #define wxSUNKEN_BORDER 0x08000000
#define wxRAISED_BORDER 0x04000000 #define wxRAISED_BORDER 0x04000000
#define wxBORDER 0x02000000 #define wxBORDER 0x02000000
#define wxSIMPLE_BORDER wxBORDER #define wxSIMPLE_BORDER wxBORDER
#define wxSTATIC_BORDER 0x01000000 #define wxSTATIC_BORDER 0x01000000
#define wxTRANSPARENT_WINDOW 0x00100000 #define wxTRANSPARENT_WINDOW 0x00100000
#define wxNO_BORDER 0x00200000 #define wxNO_BORDER 0x00200000
#define wxUSER_COLOURS 0x00800000 #define wxUSER_COLOURS 0x00800000
// Override CTL3D etc. control colour processing to // Override CTL3D etc. control colour processing to
// allow own background colour // allow own background colour
// OBSOLETE - use wxNO_3D instead // OBSOLETE - use wxNO_3D instead
#define wxNO_3D 0x00800000 #define wxNO_3D 0x00800000
// Override CTL3D or native 3D styles for children // Override CTL3D or native 3D styles for children
#define wxCLIP_CHILDREN 0x00400000 #define wxCLIP_CHILDREN 0x00400000
// Clip children when painting, which reduces flicker in // Clip children when painting, which reduces flicker in
// e.g. frames and splitter windows, but can't be used in // e.g. frames and splitter windows, but can't be used in
// a panel where a static box must be 'transparent' (panel // 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 // Add this style to a panel to get tab traversal working
// outside of dialogs. // outside of dialogs.
#define wxTAB_TRAVERSAL 0x00080000 #define wxTAB_TRAVERSAL 0x00080000
// Add this style if the control wants to get all keyboard messages (under // Add this style if the control wants to get all keyboard messages (under
// Windows, it won't normally get the dialog navigation key events) // Windows, it won't normally get the dialog navigation key events)
#define wxWANTS_CHARS 0x00040000 #define wxWANTS_CHARS 0x00040000
// Orientations // Make window retained (mostly Motif, I think)
enum wxOrientation #define wxRETAINED 0x0002000
{ #define wxBACKINGSTORE wxRETAINED
wxHORIZONTAL = 0x01,
wxVERTICAL = 0x02,
wxBOTH = (wxVERTICAL | wxHORIZONTAL)
};
#define wxCENTER_FRAME 0x04 /* centering into frame rather than screen */
/* /*
* Frame/dialog style flags * wxFrame/wxDialog style flags
*/ */
#define wxSTAY_ON_TOP 0x8000 #define wxSTAY_ON_TOP 0x8000
#define wxICONIZE 0x4000 #define wxICONIZE 0x4000
@@ -567,7 +595,7 @@ enum wxOrientation
#define wxRESIZE_BORDER 0x0040 #define wxRESIZE_BORDER 0x0040
#define wxDIALOG_MODAL 0x0020 #define wxDIALOG_MODAL 0x0020
#define wxDIALOG_MODELESS 0x0000 #define wxDIALOG_MODELESS 0x0000
/* Add for normal Windows frame behaviour */ // Add for normal Windows frame behaviour
#define wxFRAME_FLOAT_ON_PARENT 0x0020 #define wxFRAME_FLOAT_ON_PARENT 0x0020
@@ -575,7 +603,8 @@ enum wxOrientation
#define wxDEFAULT_FRAME wxDEFAULT_FRAME_STYLE #define wxDEFAULT_FRAME wxDEFAULT_FRAME_STYLE
#endif #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__ #ifdef __WXMSW__
# define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME) # define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME)
@@ -585,25 +614,30 @@ enum wxOrientation
# define wxDEFAULT_DIALOG_STYLE (wxCAPTION) # define wxDEFAULT_DIALOG_STYLE (wxCAPTION)
#endif #endif
/* /*
* Subwindow style flags * wxExtDialog style flags
*/ */
#define wxRETAINED 0x0001 #define wxED_CLIENT_MARGIN 0x0004
#define wxBACKINGSTORE wxRETAINED #define wxED_BUTTONS_BOTTOM 0x0000 // has no effect
// wxCanvas or wxPanel can optionally have a thick frame under MS Windows. #define wxED_BUTTONS_RIGHT 0x0002
// #define wxTHICK_FRAME 0x1000 #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 * wxToolBar style flags
*/ */
#define wxTB_3DBUTTONS 0x8000 #define wxTB_3DBUTTONS 0x8000
#define wxTB_HORIZONTAL 0x0002 #define wxTB_HORIZONTAL 0x0002
#define wxTB_VERTICAL 0x0004 #define wxTB_VERTICAL 0x0004
// Flatbar/Coolbar under Win98/ GTK 1.2 // Flatbar/Coolbar under Win98/ GTK 1.2
#define wxTB_FLAT 0x0008 #define wxTB_FLAT 0x0008
// use native docking under GTK // use native docking under GTK
#define wxTB_DOCKABLE 0x0010 #define wxTB_DOCKABLE 0x0010
/* /*
* wxMenuBar style flags * wxMenuBar style flags
@@ -665,9 +699,8 @@ enum wxOrientation
/* /*
* wxRadioBox/wxRadioButton style flags * wxRadioBox/wxRadioButton style flags
*/ */
// New, more intuitive names to specify majorDim argument // New, more intuitive names to specify majorDim argument
// Same as wxRA_HORIZONTAL // Same as wxRA_HORIZONTAL
#define wxRA_SPECIFY_COLS 0x0001 #define wxRA_SPECIFY_COLS 0x0001
// Same as wxRA_VERTICAL // Same as wxRA_VERTICAL
@@ -684,7 +717,7 @@ enum wxOrientation
#define wxGA_PROGRESSBAR 0x0004 #define wxGA_PROGRESSBAR 0x0004
#define wxGA_HORIZONTAL wxHORIZONTAL #define wxGA_HORIZONTAL wxHORIZONTAL
#define wxGA_VERTICAL wxVERTICAL #define wxGA_VERTICAL wxVERTICAL
/* Windows only */ // Windows only
#define wxGA_SMOOTH 0x0008 #define wxGA_SMOOTH 0x0008
/* /*
@@ -759,7 +792,6 @@ enum wxOrientation
/* /*
* wxSpinButton flags * wxSpinButton flags
*/ */
#define wxSP_VERTICAL 0x0004 #define wxSP_VERTICAL 0x0004
#define wxSP_HORIZONTAL 0x0008 #define wxSP_HORIZONTAL 0x0008
#define wxSP_ARROW_KEYS 0x0010 #define wxSP_ARROW_KEYS 0x0010
@@ -768,7 +800,6 @@ enum wxOrientation
/* /*
* wxSplitterWindow flags * wxSplitterWindow flags
*/ */
#define wxSP_NOBORDER 0x0000 #define wxSP_NOBORDER 0x0000
#define wxSP_3D 0x0004 #define wxSP_3D 0x0004
#define wxSP_BORDER 0x0008 #define wxSP_BORDER 0x0008
@@ -778,49 +809,181 @@ enum wxOrientation
/* /*
* wxFrame extra flags * wxFrame extra flags
*/ */
// No title on taskbar // No title on taskbar
#define wxFRAME_TOOL_WINDOW 0x0004 #define wxFRAME_TOOL_WINDOW 0x0004
/* /*
* wxTabCtrl flags * wxTabCtrl flags
*/ */
#define wxTC_MULTILINE 0x0000
#define wxTC_MULTILINE 0x0000 #define wxTC_RIGHTJUSTIFY 0x0004
#define wxTC_RIGHTJUSTIFY 0x0004 #define wxTC_FIXEDWIDTH 0x0008
#define wxTC_FIXEDWIDTH 0x0008 #define wxTC_OWNERDRAW 0x0010
#define wxTC_OWNERDRAW 0x0010
/* /*
* wxNotebook flags * wxNotebook flags
*/ */
#define wxNB_FIXEDWIDTH 0x0008 #define wxNB_FIXEDWIDTH 0x0008
/* /*
* wxStatusBar95 flags * wxStatusBar95 flags
*/ */
#define wxST_SIZEGRIP 0x0002
#define wxST_SIZEGRIP 0x0002
/* /*
* wxStaticLine flags * wxStaticLine flags
*/ */
#define wxLI_HORIZONTAL wxHORIZONTAL #define wxLI_HORIZONTAL wxHORIZONTAL
#define wxLI_VERTICAL wxVERTICAL #define wxLI_VERTICAL wxVERTICAL
/* /*
* wxProgressDialog flags * wxProgressDialog flags
*/ */
#define wxPD_CAN_ABORT 0x0001 #define wxPD_CAN_ABORT 0x0001
#define wxPD_APP_MODAL 0x0002 #define wxPD_APP_MODAL 0x0002
#define wxPD_AUTO_HIDE 0x0004 #define wxPD_AUTO_HIDE 0x0004
#define wxPD_ELAPSED_TIME 0x0008 #define wxPD_ELAPSED_TIME 0x0008
#define wxPD_ESTIMATED_TIME 0x0010 #define wxPD_ESTIMATED_TIME 0x0010
#define wxPD_REMAINING_TIME 0x0020 #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 { enum {
// Text font families // Text font families
@@ -898,56 +1061,20 @@ typedef enum
wxSRC_AND // source _bitmap_ AND destination wxSRC_AND // source _bitmap_ AND destination
} form_ops_t; } form_ops_t;
// Flood styles /* Flood styles */
#define wxFLOOD_SURFACE 1 #define wxFLOOD_SURFACE 1
#define wxFLOOD_BORDER 2 #define wxFLOOD_BORDER 2
// Polygon filling mode /* Polygon filling mode */
#define wxODDEVEN_RULE 1 #define wxODDEVEN_RULE 1
#define wxWINDING_RULE 2 #define wxWINDING_RULE 2
// ToolPanel in wxFrame /* ToolPanel in wxFrame */
#define wxTOOL_TOP 1 #define wxTOOL_TOP 1
#define wxTOOL_BOTTOM 2 #define wxTOOL_BOTTOM 2
#define wxTOOL_LEFT 3 #define wxTOOL_LEFT 3
#define wxTOOL_RIGHT 4 #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 enum wxDataFormatId
{ {
@@ -1083,78 +1210,6 @@ enum wxKeyCode
WXK_NUMPAD_DIVIDE 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) // Mapping modes (as per Windows)
#define wxMM_TEXT 1 #define wxMM_TEXT 1
#define wxMM_LOMETRIC 2 #define wxMM_LOMETRIC 2
@@ -1279,6 +1334,11 @@ typedef enum {
wxPRINT_MODE_PRINTER = 3 // Send to printer wxPRINT_MODE_PRINTER = 3 // Send to printer
} wxPrintMode; } 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__ #ifdef __WXMSW__
// Stand-ins for Windows types, to avoid #including all of windows.h // Stand-ins for Windows types, to avoid #including all of windows.h

7
include/wx/extdlg.h Normal file
View File

@@ -0,0 +1,7 @@
#ifndef _WX_EXTDLG_H_BASE_
#define _WX_EXTDLG_H_BASE_
#include "wx/generic/extdlgg.h"
#endif
// _WX_EXTDLG_H_BASE_

View File

@@ -11,6 +11,7 @@ wx_generic_include_HEADERS = \
colrdlgg.h \ colrdlgg.h \
dcpsg.h \ dcpsg.h \
dirdlgg.h \ dirdlgg.h \
extdlgg.h \
fontdlgg.h \ fontdlgg.h \
gridg.h \ gridg.h \
helpext.h \ helpext.h \

View File

@@ -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

View File

@@ -35,14 +35,6 @@
#define wxGRID_DEFAULT_VERTICAL_LABEL_WIDTH 40 #define wxGRID_DEFAULT_VERTICAL_LABEL_WIDTH 40
#define wxGRID_DEFAULT_HORIZONAL_LABEL_HEIGHT 20 #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 #define WXGENERIC_GRID_VERSION 0.5
class WXDLLEXPORT wxGridEvent; class WXDLLEXPORT wxGridEvent;

View File

@@ -38,7 +38,6 @@ public:
void OnCancel(wxCommandEvent& event); void OnCancel(wxCommandEvent& event);
private: private:
wxList m_buttons;
int m_dialogStyle; int m_dialogStyle;
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()

View File

@@ -1,5 +1,5 @@
/* XPM */ /* XPM */
static char *info[] = { static char *info_xpm[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"48 48 478 2", "48 48 478 2",
" c Gray0", " c Gray0",

View File

@@ -12,12 +12,12 @@
#define __GTKSTATICLINEH__ #define __GTKSTATICLINEH__
#ifdef __GNUG__ #ifdef __GNUG__
#pragma interface #pragma interface
#endif #endif
#if !wxUSE_STATLINE #include "wx/defs.h"
#error "This file should only be included if wxUSE_STATLINE == 1"
#endif #if wxUSE_STATLINE
#include "wx/object.h" #include "wx/object.h"
#include "wx/list.h" #include "wx/list.h"
@@ -47,4 +47,8 @@ public:
long style = wxLI_HORIZONTAL, const wxString &name = wxStaticTextNameStr ); long style = wxLI_HORIZONTAL, const wxString &name = wxStaticTextNameStr );
}; };
#endif // __GTKSTATICLINEH__ #endif
// wxUSE_STATLINE
#endif
// __GTKSTATICLINEH__

View File

@@ -1,5 +1,5 @@
/* XPM */ /* XPM */
static char *info[] = { static char *info_xpm[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"48 48 478 2", "48 48 478 2",
" c Gray0", " c Gray0",

View File

@@ -12,12 +12,12 @@
#define __GTKSTATICLINEH__ #define __GTKSTATICLINEH__
#ifdef __GNUG__ #ifdef __GNUG__
#pragma interface #pragma interface
#endif #endif
#if !wxUSE_STATLINE #include "wx/defs.h"
#error "This file should only be included if wxUSE_STATLINE == 1"
#endif #if wxUSE_STATLINE
#include "wx/object.h" #include "wx/object.h"
#include "wx/list.h" #include "wx/list.h"
@@ -47,4 +47,8 @@ public:
long style = wxLI_HORIZONTAL, const wxString &name = wxStaticTextNameStr ); long style = wxLI_HORIZONTAL, const wxString &name = wxStaticTextNameStr );
}; };
#endif // __GTKSTATICLINEH__ #endif
// wxUSE_STATLINE
#endif
// __GTKSTATICLINEH__

View File

@@ -25,12 +25,13 @@
#include "wx/wx.h" #include "wx/wx.h"
#endif #endif
#include <wx/colordlg.h> #include "wx/colordlg.h"
#include <wx/filedlg.h> #include "wx/filedlg.h"
#include <wx/dirdlg.h> #include "wx/dirdlg.h"
#include <wx/fontdlg.h> #include "wx/fontdlg.h"
#include <wx/choicdlg.h> #include "wx/choicdlg.h"
#include <wx/tipdlg.h> #include "wx/tipdlg.h"
#include "wx/extdlg.h"
#define wxTEST_GENERIC_DIALOGS_IN_MSW 0 #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_MESSAGE_BOX, "&Message box");
file_menu->Append(DIALOGS_TEXT_ENTRY, "Text &entry"); file_menu->Append(DIALOGS_TEXT_ENTRY, "Text &entry");
file_menu->Append(DIALOGS_SINGLE_CHOICE, "&Single choice"); file_menu->Append(DIALOGS_SINGLE_CHOICE, "&Single choice");
file_menu->Append(DIALOGS_EXT_DIALOG, "&Extended dialog");
file_menu->AppendSeparator(); file_menu->AppendSeparator();
file_menu->Append(DIALOGS_TIP, "&Tip of the day"); file_menu->Append(DIALOGS_TIP, "&Tip of the day");
file_menu->AppendSeparator(); file_menu->AppendSeparator();
@@ -108,6 +110,42 @@ MyFrame::MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos, co
wxFrame(parent, -1, title, pos, size) 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) ) void MyFrame::ChooseColour(wxCommandEvent& WXUNUSED(event) )
{ {
wxColourData data; wxColourData data;
@@ -326,6 +364,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(DIALOGS_FILE_SAVE, MyFrame::FileSave) EVT_MENU(DIALOGS_FILE_SAVE, MyFrame::FileSave)
EVT_MENU(DIALOGS_DIR_CHOOSE, MyFrame::DirChoose) EVT_MENU(DIALOGS_DIR_CHOOSE, MyFrame::DirChoose)
EVT_MENU(DIALOGS_TIP, MyFrame::ShowTip) EVT_MENU(DIALOGS_TIP, MyFrame::ShowTip)
EVT_MENU(DIALOGS_EXT_DIALOG, MyFrame::ExtDialog)
#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW #if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW
EVT_MENU(DIALOGS_CHOOSE_COLOUR_GENERIC, MyFrame::ChooseColourGeneric) EVT_MENU(DIALOGS_CHOOSE_COLOUR_GENERIC, MyFrame::ChooseColourGeneric)
EVT_MENU(DIALOGS_CHOOSE_FONT_GENERIC, MyFrame::ChooseFontGeneric) EVT_MENU(DIALOGS_CHOOSE_FONT_GENERIC, MyFrame::ChooseFontGeneric)

View File

@@ -27,8 +27,8 @@ class MyFrame: public wxFrame
MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos, MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos,
const wxSize& size); const wxSize& size);
void ChooseColour(wxCommandEvent& event); void ChooseColour(wxCommandEvent& event);
void ChooseFont(wxCommandEvent& event); void ChooseFont(wxCommandEvent& event);
void MessageBox(wxCommandEvent& event); void MessageBox(wxCommandEvent& event);
void SingleChoice(wxCommandEvent& event); void SingleChoice(wxCommandEvent& event);
void TextEntry(wxCommandEvent& event); void TextEntry(wxCommandEvent& event);
@@ -36,13 +36,15 @@ class MyFrame: public wxFrame
void FileSave(wxCommandEvent& event); void FileSave(wxCommandEvent& event);
void DirChoose(wxCommandEvent& event); void DirChoose(wxCommandEvent& event);
void ShowTip(wxCommandEvent& event); void ShowTip(wxCommandEvent& event);
void ExtDialog(wxCommandEvent &event);
#if !defined(__WXMSW__) || wxTEST_GENERIC_DIALOGS_IN_MSW #if !defined(__WXMSW__) || wxTEST_GENERIC_DIALOGS_IN_MSW
void ChooseColourGeneric(wxCommandEvent& event); void ChooseColourGeneric(wxCommandEvent& event);
void ChooseFontGeneric(wxCommandEvent& event); void ChooseFontGeneric(wxCommandEvent& event);
#endif #endif
void OnExit(wxCommandEvent& event); void OnExit(wxCommandEvent& event);
DECLARE_EVENT_TABLE()
DECLARE_EVENT_TABLE()
}; };
class MyCanvas: public wxScrolledWindow class MyCanvas: public wxScrolledWindow
@@ -69,6 +71,7 @@ DECLARE_EVENT_TABLE()
#define DIALOGS_FILE_SAVE 9 #define DIALOGS_FILE_SAVE 9
#define DIALOGS_DIR_CHOOSE 10 #define DIALOGS_DIR_CHOOSE 10
#define DIALOGS_TIP 11 #define DIALOGS_TIP 11
#define DIALOGS_EXT_DIALOG 12
#endif #endif

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -201,15 +201,15 @@ void MyApp::DoStreamDemo(wxCommandEvent& WXUNUSED(event))
file_output.SeekO( 0 ); file_output.SeekO( 0 );
wxDataOutputStream data_output( file_output ); wxDataOutputStream data_output( file_output );
wxInt32 i32 = 0xFFFFFFFF; wxInt16 i16 = 0xFFFF;
tmp.Printf( "Signed int32: %d\n", i32 ); tmp.Printf( "Signed int16: %d\n", (int)i16 );
textCtrl.WriteText( tmp ); textCtrl.WriteText( tmp );
data_output.Write32( i32 ); data_output.Write16( i16 );
wxUint32 ui32 = 0xFFFFFFFF; wxUint16 ui16 = 0xFFFF;
tmp.Printf( "Unsigned int32: %u\n", ui32 ); tmp.Printf( "Unsigned int16: %u\n", (unsigned int) ui16 );
textCtrl.WriteText( tmp ); textCtrl.WriteText( tmp );
data_output.Write32( ui32 ); data_output.Write16( ui16 );
d = 2.01234567890123456789; d = 2.01234567890123456789;
tmp.Printf( "Double: %f\n", d ); tmp.Printf( "Double: %f\n", d );
@@ -228,12 +228,12 @@ void MyApp::DoStreamDemo(wxCommandEvent& WXUNUSED(event))
file_input.SeekI( 0 ); file_input.SeekI( 0 );
wxDataInputStream data_input( file_input ); wxDataInputStream data_input( file_input );
i32 = data_input.Read32(); i16 = data_input.Read16();
tmp.Printf( "Signed int32: %d\n", i32 ); tmp.Printf( "Signed int16: %d\n", (int)i16 );
textCtrl.WriteText( tmp ); textCtrl.WriteText( tmp );
ui32 = data_input.Read32(); ui16 = data_input.Read16();
tmp.Printf( "Unsigned int32: %u\n", ui32 ); tmp.Printf( "Unsigned int16: %u\n", (unsigned int) ui16 );
textCtrl.WriteText( tmp ); textCtrl.WriteText( tmp );
d = data_input.ReadDouble(); d = data_input.ReadDouble();

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

View File

@@ -1,3 +1,5 @@
AUTOMAKE_OPTIONS = 1.3 no-dependencies
SUFFIXES = .cpp SUFFIXES = .cpp
DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE)

360
src/generic/extdlgg.cpp Normal file
View File

@@ -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;
}

View File

@@ -108,6 +108,7 @@ libwx_gtk_la_SOURCES = \
colrdlgg.cpp \ colrdlgg.cpp \
dcpsg.cpp \ dcpsg.cpp \
dirdlgg.cpp \ dirdlgg.cpp \
extdlgg.cpp \
fontdlgg.cpp \ fontdlgg.cpp \
gridg.cpp \ gridg.cpp \
helpext.cpp \ helpext.cpp \

View File

@@ -108,6 +108,7 @@ libwx_gtk_la_SOURCES = \
colrdlgg.cpp \ colrdlgg.cpp \
dcpsg.cpp \ dcpsg.cpp \
dirdlgg.cpp \ dirdlgg.cpp \
extdlgg.cpp \
fontdlgg.cpp \ fontdlgg.cpp \
gridg.cpp \ gridg.cpp \
helpext.cpp \ helpext.cpp \