Header changes (gtk.h etc no longer included in defs.h
but in *.cpp to speed up compilation (?) ) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -16,15 +16,6 @@
|
||||
#pragma interface "defs.h"
|
||||
#endif
|
||||
|
||||
#ifdef __WXGTK__
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
#endif
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include "wx/setup.h"
|
||||
@@ -664,7 +655,8 @@ enum {
|
||||
|
||||
|
||||
// Logical ops
|
||||
typedef enum {
|
||||
typedef enum
|
||||
{
|
||||
wxCLEAR, // 0
|
||||
wxXOR, // src XOR dst
|
||||
wxINVERT, // NOT dst
|
||||
@@ -736,8 +728,8 @@ typedef enum {
|
||||
#define wxSIZE_NO_ADJUSTMENTS 0x0008
|
||||
|
||||
|
||||
// Data format for drag & drop and clipboard operations
|
||||
// numbers as per winuser.h
|
||||
/* Data format for drag & drop and clipboard operations
|
||||
* numbers as per winuser.h */
|
||||
|
||||
enum wxDataFormat
|
||||
{
|
||||
@@ -750,9 +742,10 @@ enum wxDataFormat
|
||||
wxDF_PRIVATE = 20
|
||||
};
|
||||
|
||||
// Virtual keycodes
|
||||
/* Virtual keycodes */
|
||||
|
||||
enum wxKeyCode {
|
||||
enum wxKeyCode
|
||||
{
|
||||
WXK_BACK = 8,
|
||||
WXK_TAB = 9,
|
||||
WXK_RETURN = 13,
|
||||
@@ -771,8 +764,8 @@ enum wxKeyCode {
|
||||
WXK_MENU,
|
||||
WXK_PAUSE,
|
||||
WXK_CAPITAL,
|
||||
WXK_PRIOR, // Page up
|
||||
WXK_NEXT, // Page down
|
||||
WXK_PRIOR, /* Page up */
|
||||
WXK_NEXT, /* Page down */
|
||||
WXK_END,
|
||||
WXK_HOME,
|
||||
WXK_LEFT,
|
||||
@@ -831,37 +824,36 @@ enum wxKeyCode {
|
||||
WXK_PAGEDOWN
|
||||
};
|
||||
|
||||
// Colours - see wx_gdi.cc for database
|
||||
|
||||
// OS mnemonics -- Identify the running OS (useful for Windows)
|
||||
// [Not all platforms are currently available or supported]
|
||||
enum {
|
||||
/* 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
|
||||
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 */
|
||||
};
|
||||
|
||||
// Printing
|
||||
/* Printing */
|
||||
#ifndef wxPORTRAIT
|
||||
#define wxPORTRAIT 1
|
||||
#define wxLANDSCAPE 2
|
||||
#endif
|
||||
|
||||
// Standard menu identifiers
|
||||
/* Standard menu identifiers */
|
||||
#define wxID_OPEN 5000
|
||||
#define wxID_CLOSE 5001
|
||||
#define wxID_NEW 5002
|
||||
@@ -908,13 +900,12 @@ enum {
|
||||
|
||||
#define wxID_HIGHEST 5999
|
||||
|
||||
// Shortcut for easier dialog-unit-to-pixel conversion
|
||||
/* Shortcut for easier dialog-unit-to-pixel conversion */
|
||||
#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
|
||||
|
||||
#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 */
|
||||
typedef unsigned long WXHWND;
|
||||
typedef unsigned long WXHANDLE;
|
||||
typedef unsigned long WXHICON;
|
||||
@@ -956,7 +947,7 @@ typedef int (*WXFARPROC)();
|
||||
#endif
|
||||
|
||||
#ifdef __WXMOTIF__
|
||||
// Stand-ins for X/Xt/Motif types
|
||||
/* Stand-ins for X/Xt/Motif types */
|
||||
typedef void* WXWindow;
|
||||
typedef void* WXWidget;
|
||||
typedef void* WXAppContext;
|
||||
@@ -974,5 +965,36 @@ typedef void* WXCursor;
|
||||
typedef void* WXFontList;
|
||||
#endif
|
||||
|
||||
#ifdef __WXGTK__
|
||||
/* Stand-ins for GLIB types */
|
||||
typedef int gint;
|
||||
typedef unsigned guint;
|
||||
typedef unsigned long gulong;
|
||||
typedef void* gpointer;
|
||||
|
||||
/* Stand-ins for GDK types */
|
||||
typedef gulong GdkAtom;
|
||||
typedef struct _GdkColor GdkColor;
|
||||
typedef struct _GdkColormap GdkColormap;
|
||||
typedef struct _GdkFont GdkFont;
|
||||
typedef struct _GdkGC GdkGC;
|
||||
typedef struct _GdkWindow GdkWindow;
|
||||
typedef struct _GdkWindow GdkBitmap;
|
||||
typedef struct _GdkWindow GdkPixmap;
|
||||
typedef struct _GdkCursor GdkCursor;
|
||||
typedef struct _GdkRegion GdkRegion;
|
||||
|
||||
/* Stand-ins for GTK types */
|
||||
typedef struct _GtkWidget GtkWidget;
|
||||
typedef struct _GtkStyle GtkStyle;
|
||||
typedef struct _GtkAdjustment GtkAdjustment;
|
||||
typedef struct _GtkList GtkList;
|
||||
typedef struct _GtkToolbar GtkToolbar;
|
||||
typedef struct _GtkNotebook GtkNotebook;
|
||||
typedef struct _GtkNotebookPage GtkNotebookPage;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
// _WX_DEFS_H_
|
||||
|
@@ -37,7 +37,7 @@ class wxFileDialog: public wxDialog
|
||||
|
||||
wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr,
|
||||
const wxString& defaultDir = "", const wxString& defaultFile = "",
|
||||
const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
|
||||
const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
|
||||
long style = 0, const wxPoint& pos = wxDefaultPosition);
|
||||
|
||||
inline void SetMessage(const wxString& message) { m_message = message; }
|
||||
|
@@ -143,8 +143,8 @@ class wxToolBar: public wxControl
|
||||
int m_separation;
|
||||
wxList m_tools;
|
||||
|
||||
GdkColor m_fg;
|
||||
GdkColor m_bg;
|
||||
GdkColor *m_fg;
|
||||
GdkColor *m_bg;
|
||||
int m_xMargin;
|
||||
int m_yMargin;
|
||||
bool m_hasToolAlready;
|
||||
|
@@ -37,7 +37,7 @@ class wxFileDialog: public wxDialog
|
||||
|
||||
wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr,
|
||||
const wxString& defaultDir = "", const wxString& defaultFile = "",
|
||||
const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
|
||||
const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
|
||||
long style = 0, const wxPoint& pos = wxDefaultPosition);
|
||||
|
||||
inline void SetMessage(const wxString& message) { m_message = message; }
|
||||
|
@@ -143,8 +143,8 @@ class wxToolBar: public wxControl
|
||||
int m_separation;
|
||||
wxList m_tools;
|
||||
|
||||
GdkColor m_fg;
|
||||
GdkColor m_bg;
|
||||
GdkColor *m_fg;
|
||||
GdkColor *m_bg;
|
||||
int m_xMargin;
|
||||
int m_yMargin;
|
||||
bool m_hasToolAlready;
|
||||
|
@@ -96,12 +96,11 @@ EXTRA_LINK = @EXTRA_LINK@
|
||||
# INCLUDES
|
||||
WX_INCLUDES = \
|
||||
$(TOOLKIT_DEF) \
|
||||
-I. \
|
||||
-I.. \
|
||||
-I$(WXBASEDIR)/include \
|
||||
-I. \
|
||||
$(GUI_TK_INCLUDE) \
|
||||
-I$(WXBASEDIR)/src/zlib \
|
||||
-I$(WXBASEDIR)/src/iodbc \
|
||||
$(GUI_TK_INCLUDE) \
|
||||
$(OPENGL_INCLUDE) \
|
||||
$(X_CFLAGS)
|
||||
|
||||
|
@@ -25,11 +25,6 @@
|
||||
#include "../png/png.h"
|
||||
#include "wx/filefn.h"
|
||||
|
||||
#ifdef __WXGTK__
|
||||
#include "gdk/gdkprivate.h"
|
||||
#include "gdk/gdkx.h"
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxImage
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -1247,6 +1242,10 @@ wxImage::wxImage( const wxBitmap &bitmap )
|
||||
|
||||
#ifdef __WXGTK__
|
||||
|
||||
#include "gtk/gtk.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gdk/gdkx.h"
|
||||
|
||||
wxBitmap wxImage::ConvertToBitmap() const
|
||||
{
|
||||
wxBitmap bitmap;
|
||||
|
@@ -26,6 +26,11 @@
|
||||
|
||||
#include "unistd.h"
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// global data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,9 +14,11 @@
|
||||
#include "wx/bitmap.h"
|
||||
#include "wx/icon.h"
|
||||
#include "wx/filefn.h"
|
||||
#include "wx/image.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gdk/gdkprivate.h"
|
||||
#include "gdk/gdkx.h"
|
||||
#include "wx/image.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxMask
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/bmpbuttn.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// classes
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,8 @@
|
||||
|
||||
#include "wx/brush.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxBrush
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/button.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// classes
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "wx/checkbox.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/checklst.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxCheckListBox
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "wx/choice.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,10 @@
|
||||
|
||||
#include "wx/clipbrd.h"
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,7 @@
|
||||
|
||||
#include "wx/gdicmn.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gdk/gdkprivate.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
#include "wx/combobox.h"
|
||||
#include <wx/intl.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,8 @@
|
||||
|
||||
#include "wx/cursor.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxCursor
|
||||
//-----------------------------------------------------------------------------
|
||||
|
648
src/gtk/data.cpp
648
src/gtk/data.cpp
@@ -21,8 +21,7 @@
|
||||
|
||||
#define _MAXPATHLEN 500
|
||||
|
||||
// Used for X resources
|
||||
|
||||
/* Used for X resources */
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/Xresource.h>
|
||||
@@ -30,50 +29,49 @@
|
||||
wxResourceCache *wxTheResourceCache = (wxResourceCache *) NULL;
|
||||
XrmDatabase wxResourceDatabase;
|
||||
|
||||
// Useful buffer, initialized in wxCommonInit
|
||||
/* Useful buffer, initialized in wxCommonInit */
|
||||
char *wxBuffer = (char *) NULL;
|
||||
|
||||
// Windows List
|
||||
/* Windows List */
|
||||
wxList wxTopLevelWindows;
|
||||
|
||||
// List of windows pending deletion
|
||||
/* List of windows pending deletion */
|
||||
wxList wxPendingDelete;
|
||||
|
||||
// Current cursor, in order to hang on to
|
||||
// cursor handle when setting the cursor globally
|
||||
/* Current cursor, in order to hang on to
|
||||
* cursor handle when setting the cursor globally */
|
||||
wxCursor *g_globalCursor = (wxCursor *) NULL;
|
||||
|
||||
// Don't allow event propagation during drag
|
||||
/* Don't allow event propagation during drag */
|
||||
bool g_blockEventsOnDrag = FALSE;
|
||||
|
||||
// Don't allow mouse event propagation during scroll
|
||||
/* Don't allow mouse event propagation during scroll */
|
||||
bool g_blockEventsOnScroll = FALSE;
|
||||
|
||||
// Message Strings for Internationalization
|
||||
/* Message Strings for Internationalization */
|
||||
char **wx_msg_str = (char**)NULL;
|
||||
|
||||
// Custom OS version, as optionally placed in wx.ini/.wxrc
|
||||
// Currently this can be Win95, Windows, Win32s, WinNT.
|
||||
// For some systems, you can't tell until run-time what services you
|
||||
// have. See wxGetOsVersion, which uses this string if present.
|
||||
/* Custom OS version, as optionally placed in wx.ini/.wxrc
|
||||
* Currently this can be Win95, Windows, Win32s, WinNT.
|
||||
* For some systems, you can't tell until run-time what services you
|
||||
* have. See wxGetOsVersion, which uses this string if present. */
|
||||
char *wxOsVersion = (char *) NULL;
|
||||
|
||||
// For printing several pages
|
||||
/* For printing several pages */
|
||||
int wxPageNumber;
|
||||
wxPrintPaperDatabase* wxThePrintPaperDatabase = (wxPrintPaperDatabase *) NULL;
|
||||
|
||||
// GDI Object Lists
|
||||
/* GDI Object Lists */
|
||||
wxBrushList *wxTheBrushList = (wxBrushList *) NULL;
|
||||
wxPenList *wxThePenList = (wxPenList *) NULL;
|
||||
wxFontList *wxTheFontList = (wxFontList *) NULL;
|
||||
wxColourDatabase *wxTheColourDatabase = (wxColourDatabase *) NULL;
|
||||
wxBitmapList *wxTheBitmapList = (wxBitmapList *) NULL;
|
||||
wxBitmapList *wxTheBitmapList = (wxBitmapList *) NULL;
|
||||
|
||||
|
||||
// X only font names
|
||||
/* X only font names */
|
||||
wxFontNameDirectory *wxTheFontNameDirectory;
|
||||
|
||||
// Stock objects
|
||||
/* Stock objects */
|
||||
wxFont *wxNORMAL_FONT;
|
||||
wxFont *wxSMALL_FONT;
|
||||
wxFont *wxITALIC_FONT;
|
||||
@@ -103,7 +101,7 @@ wxBrush *wxLIGHT_GREY_BRUSH;
|
||||
|
||||
wxColour *wxBLACK;
|
||||
wxColour *wxWHITE;
|
||||
wxColour *wxGREY; // Robert Roebling
|
||||
wxColour *wxGREY;
|
||||
wxColour *wxRED;
|
||||
wxColour *wxBLUE;
|
||||
wxColour *wxGREEN;
|
||||
@@ -114,7 +112,7 @@ wxCursor *wxSTANDARD_CURSOR = (wxCursor *) NULL;
|
||||
wxCursor *wxHOURGLASS_CURSOR = (wxCursor *) NULL;
|
||||
wxCursor *wxCROSS_CURSOR = (wxCursor *) NULL;
|
||||
|
||||
// 'Null' objects
|
||||
/* 'Null' objects */
|
||||
wxAcceleratorTable wxNullAcceleratorTable;
|
||||
wxBitmap wxNullBitmap;
|
||||
wxIcon wxNullIcon;
|
||||
@@ -126,7 +124,7 @@ wxColour wxNullColour;
|
||||
wxPalette wxNullPalette;
|
||||
wxRegion wxNullRegion;
|
||||
|
||||
// Default window names
|
||||
/* Default window names */
|
||||
const char *wxButtonNameStr = "button";
|
||||
const char *wxCanvasNameStr = "canvas";
|
||||
const char *wxCheckBoxNameStr = "check";
|
||||
@@ -162,610 +160,10 @@ const char *wxFileSelectorDefaultWildcardStr = "*.*";
|
||||
const char *wxInternalErrorStr = "wxWindows Internal Error";
|
||||
const char *wxFatalErrorStr = "wxWindows Fatal Error";
|
||||
|
||||
// See wx/utils.h
|
||||
/* See wx/utils.h */
|
||||
const char *wxFloatToStringStr = "%.2f";
|
||||
const char *wxDoubleToStringStr = "%.2f";
|
||||
|
||||
#ifdef wx_msw
|
||||
const char *wxUserResourceStr = "TEXT";
|
||||
#endif
|
||||
|
||||
|
||||
#if wxUSE_SHARED_LIBRARY
|
||||
/*
|
||||
* For wxWindows to be made into a dynamic library (e.g. Sun),
|
||||
* all IMPLEMENT_... macros must be in one place.
|
||||
* But normally, the definitions are in the appropriate places.
|
||||
*/
|
||||
|
||||
// Hand-coded IMPLEMENT... macro for wxObject (define static data)
|
||||
wxClassInfo wxObject::classwxObject((char *) "wxObject", (char *) NULL, (char *) NULL, (int ) sizeof(wxObject), (wxObjectConstructorFn) NULL);
|
||||
wxClassInfo *wxClassInfo::first = (wxClassInfo *) NULL;
|
||||
wxHashTable wxClassInfo::classTable(wxKEY_STRING);
|
||||
|
||||
#include "wx/button.h"
|
||||
#include "wx/bmpbuttn.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton)
|
||||
|
||||
#include "wx/checkbox.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox)
|
||||
|
||||
#include "wx/choice.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl)
|
||||
|
||||
#if wxUSE_CLIPBOARD
|
||||
#include "wx/clipbrd.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxClipboardClient, wxObject)
|
||||
#endif
|
||||
|
||||
#if wxUSE_COMBOBOX
|
||||
#include "wx/combobox.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl)
|
||||
#endif
|
||||
|
||||
#include "wx/dc.h"
|
||||
#include "wx/dcmemory.h"
|
||||
#include "wx/dcclient.h"
|
||||
#include "wx/dcscreen.h"
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxDC)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxDC)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC)
|
||||
|
||||
#if defined(wx_msw)
|
||||
#include "wx/dcprint.h"
|
||||
IMPLEMENT_CLASS(wxPrinterDC, wxDC)
|
||||
#endif
|
||||
|
||||
#include "wx/dialog.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxWindow)
|
||||
|
||||
#include "wx/frame.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
|
||||
|
||||
#include "wx/mdi.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxWindow)
|
||||
|
||||
#include "wx/cmndata.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxColourData, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFontData, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrintData, wxObject)
|
||||
|
||||
#include "wx/colordlg.h"
|
||||
#include "wx/fontdlg.h"
|
||||
|
||||
#if !defined(wx_msw) || wxUSE_GENERIC_DIALOGS_IN_MSW
|
||||
#include "wx/generic/colordlg.h"
|
||||
#include "wx/generic/fontdlg.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxGenericColourDialog, wxDialog)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxGenericFontDialog, wxDialog)
|
||||
#endif
|
||||
|
||||
// X defines wxColourDialog to be wxGenericColourDialog
|
||||
#ifndef wx_x
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog)
|
||||
#endif
|
||||
|
||||
#include "wx/gdicmn.h"
|
||||
#include "wx/pen.h"
|
||||
#include "wx/brush.h"
|
||||
#include "wx/font.h"
|
||||
#include "wx/palette.h"
|
||||
#include "wx/icon.h"
|
||||
#include "wx/cursor.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject)
|
||||
IMPLEMENT_CLASS(wxColourDatabase, wxList)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFontList, wxList)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList)
|
||||
|
||||
/*
|
||||
#if (!USE_TYPEDEFS)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIntPoint, wxObject)
|
||||
#endif
|
||||
*/
|
||||
|
||||
#if defined(wx_x) || (defined(wx_msw) && wxUSE_PORTABLE_FONTS_IN_MSW)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFontNameDirectory, wxObject)
|
||||
#endif
|
||||
|
||||
#include "wx/hash.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxHashTable, wxObject)
|
||||
|
||||
#include "wx/help.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxHelpInstance, wxClient)
|
||||
IMPLEMENT_CLASS(wxHelpConnection, wxConnection)
|
||||
|
||||
#include "wx/list.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxNode, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxList, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxStringList, wxList)
|
||||
|
||||
#if wxUSE_PRINTING_ARCHITECTURE
|
||||
#include "wx/print.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrintDialog, wxDialog)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrinterBase, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPostScriptPrinter, wxPrinterBase)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxWindowsPrinter, wxPrinterBase)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxPrintout, wxObject)
|
||||
IMPLEMENT_CLASS(wxPreviewCanvas, wxWindow)
|
||||
IMPLEMENT_CLASS(wxPreviewControlBar, wxWindow)
|
||||
IMPLEMENT_CLASS(wxPreviewFrame, wxFrame)
|
||||
IMPLEMENT_CLASS(wxPrintPreviewBase, wxObject)
|
||||
IMPLEMENT_CLASS(wxPostScriptPrintPreview, wxPrintPreviewBase)
|
||||
IMPLEMENT_CLASS(wxWindowsPrintPreview, wxPrintPreviewBase)
|
||||
IMPLEMENT_CLASS(wxGenericPrintDialog, wxDialog)
|
||||
IMPLEMENT_CLASS(wxGenericPrintSetupDialog, wxDialog)
|
||||
#endif
|
||||
|
||||
#if wxUSE_POSTSCRIPT
|
||||
#include "wx/postscrp.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPostScriptDC, wxDC)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrintSetupData, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPageSetupData, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrintPaperType, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrintPaperDatabase, wxList)
|
||||
#endif
|
||||
|
||||
#if wxUSE_WX_RESOURCES
|
||||
#include "wx/resource.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxItemResource, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxResourceTable, wxHashTable)
|
||||
#endif
|
||||
|
||||
#include "wx/event.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxEvtHandler, wxObject)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxEvent, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCommandEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxScrollEvent, wxCommandEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMouseEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxKeyEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxSizeEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPaintEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxEraseEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMoveEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFocusEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCloseEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMenuEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxJoystickEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDropFilesEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxActivateEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxInitDialogEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxSysColourChangedEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIdleEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxUpdateUIEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxProcessEvent, wxEvent)
|
||||
|
||||
#include "wx/utils.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxList)
|
||||
|
||||
// IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject)
|
||||
|
||||
#include "wx/process.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxProcess, wxEvtHandler)
|
||||
|
||||
#if wxUSE_TIMEDATE
|
||||
#include "wx/date.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDate, wxObject)
|
||||
#endif
|
||||
|
||||
#if wxUSE_DOC_VIEW_ARCHITECTURE
|
||||
#include "wx/docview.h"
|
||||
//IMPLEMENT_ABSTRACT_CLASS(wxDocItem, wxObject)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxDocument, wxEvtHandler)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxView, wxEvtHandler)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxDocTemplate, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDocManager, wxEvtHandler)
|
||||
IMPLEMENT_CLASS(wxDocChildFrame, wxFrame)
|
||||
IMPLEMENT_CLASS(wxDocParentFrame, wxFrame)
|
||||
#if wxUSE_PRINTING_ARCHITECTURE
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDocPrintout, wxPrintout)
|
||||
#endif
|
||||
IMPLEMENT_CLASS(wxCommand, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCommandProcessor, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFileHistory, wxObject)
|
||||
#endif
|
||||
|
||||
#if wxUSE_CONSTRAINTS
|
||||
#include "wx/layout.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIndividualLayoutConstraint, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxLayoutConstraints, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxSizer, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxRowColSizer, wxSizer)
|
||||
#endif
|
||||
|
||||
#if wxUSE_TOOLBAR
|
||||
#include "wx/tbarbase.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxToolBarBase, wxControl)
|
||||
|
||||
#include "wx/tbarsmpl.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxToolBarSimple, wxToolBarBase)
|
||||
|
||||
#ifdef wx_msw
|
||||
#include "wx/tbarmsw.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxToolBarMSW, wxToolBarBase)
|
||||
|
||||
#include "wx/tbar95.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxToolBar95, wxToolBarBase)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#include "wx/sckaddr.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIPV4address, wxSockAddress)
|
||||
#ifdef ENABLE_IPV6
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIPV6address, wxSockAddress)
|
||||
#endif
|
||||
#ifndef __UNIX__
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxUNIXaddress, wxSockAddress)
|
||||
#endif
|
||||
|
||||
#include "wx/socket.h"
|
||||
|
||||
IMPLEMENT_CLASS(wxSocketBase, wxEvtHandler)
|
||||
IMPLEMENT_CLASS(wxSocketClient, wxSocketBase)
|
||||
IMPLEMENT_CLASS(wxSocketServer, wxSocketBase)
|
||||
IMPLEMENT_CLASS(wxSocketHandler, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxSocketEvent, wxEvent)
|
||||
|
||||
#include "wx/url.h"
|
||||
|
||||
IMPLEMENT_CLASS(wxProtoInfo, wxObject)
|
||||
IMPLEMENT_CLASS(wxURL, wxObject)
|
||||
|
||||
#include "wx/protocol/http.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxHTTP, wxProtocol)
|
||||
IMPLEMENT_PROTOCOL(wxHTTP, "http", "80", TRUE)
|
||||
|
||||
#include "wx/protocol/ftp.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFTP, wxProtocol)
|
||||
IMPLEMENT_PROTOCOL(wxFTP, "ftp", "21", TRUE)
|
||||
|
||||
#include "wx/protocol/sckfile.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFileProto, wxProtocol)
|
||||
IMPLEMENT_PROTOCOL(wxFileProto, "file", NULL, FALSE)
|
||||
|
||||
#include "wx/sckipc.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTCPServer, wxServerBase)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTCPClient, wxClientBase)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTCPConnection, wxConnectionBase)
|
||||
|
||||
#include "wx/statusbr.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxStatusBar, wxWindow)
|
||||
|
||||
BEGIN_EVENT_TABLE(wxStatusBar, wxWindow)
|
||||
EVT_PAINT(wxStatusBar::OnPaint)
|
||||
EVT_SYS_COLOUR_CHANGED(wxStatusBar::OnSysColourChanged)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#if wxUSE_TIMEDATE
|
||||
#include "wx/time.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTime, wxObject)
|
||||
#endif
|
||||
|
||||
#if !USE_GNU_WXSTRING
|
||||
#include "wx/string.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxString, wxObject)
|
||||
#endif
|
||||
|
||||
#ifdef wx_motif
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxXColormap, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxXFont, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxXCursor, wxObject)
|
||||
#endif
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxBitmap)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject)
|
||||
|
||||
// This will presumably be implemented on other platforms too
|
||||
#ifdef wx_msw
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBMPFileHandler, wxBitmapHandler)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxXPMFileHandler, wxBitmapHandler)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxXPMDataHandler, wxBitmapHandler)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxICOFileHandler, wxBitmapHandler)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxICOResourceHandler, wxBitmapHandler)
|
||||
#endif
|
||||
|
||||
#include "wx/statbox.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl)
|
||||
|
||||
#if wxUSE_IPC
|
||||
#include "wx/dde.h"
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxDDEObject, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDDEServer, wxDDEObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDDEClient, wxDDEObject)
|
||||
IMPLEMENT_CLASS(wxDDEConnection, wxObject)
|
||||
#endif
|
||||
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow)
|
||||
|
||||
#include "wx/listbox.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl)
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler)
|
||||
|
||||
#include "wx/menu.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxWindow)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxWindow)
|
||||
|
||||
#include "wx/stattext.h"
|
||||
#include "wx/statbmp.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl)
|
||||
|
||||
#if wxUSE_METAFILE
|
||||
#include "wx/metafile.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMetaFile, wxObject)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxMetaFileDC, wxDC)
|
||||
#endif
|
||||
|
||||
#include "wx/radiobox.h"
|
||||
#include "wx/radiobut.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl)
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl)
|
||||
// IMPLEMENT_DYNAMIC_CLASS(wxBitmapRadioButton, wxRadioButton)
|
||||
|
||||
#include "wx/scrolbar.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl)
|
||||
|
||||
#if WXWIN_COMPATIBILITY
|
||||
BEGIN_EVENT_TABLE(wxScrollBar, wxControl)
|
||||
EVT_SCROLL(wxScrollBar::OnScroll)
|
||||
END_EVENT_TABLE()
|
||||
#endif
|
||||
|
||||
#include "wx/slider.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl)
|
||||
|
||||
#if WXWIN_COMPATIBILITY
|
||||
BEGIN_EVENT_TABLE(wxSlider, wxControl)
|
||||
EVT_SCROLL(wxSlider::OnScroll)
|
||||
END_EVENT_TABLE()
|
||||
#endif
|
||||
|
||||
#include "wx/timer.h"
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject)
|
||||
|
||||
#include "wx/textctrl.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl)
|
||||
|
||||
#include "wx/window.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxEvtHandler)
|
||||
|
||||
#include "wx/scrolwin.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxScrolledWindow, wxWindow)
|
||||
|
||||
#include "wx/panel.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPanel, wxWindow)
|
||||
|
||||
#include "wx/msgbxdlg.h"
|
||||
#include "wx/textdlg.h"
|
||||
#include "wx/filedlg.h"
|
||||
#include "wx/dirdlg.h"
|
||||
#include "wx/choicdlg.h"
|
||||
|
||||
#if !defined(wx_msw) || wxUSE_GENERIC_DIALOGS_IN_MSW
|
||||
#include "wx/generic/msgdlgg.h"
|
||||
IMPLEMENT_CLASS(wxGenericMessageDialog, wxDialog)
|
||||
#endif
|
||||
|
||||
IMPLEMENT_CLASS(wxTextEntryDialog, wxDialog)
|
||||
IMPLEMENT_CLASS(wxSingleChoiceDialog, wxDialog)
|
||||
IMPLEMENT_CLASS(wxFileDialog, wxDialog)
|
||||
IMPLEMENT_CLASS(wxDirDialog, wxDialog)
|
||||
|
||||
#ifdef wx_msw
|
||||
IMPLEMENT_CLASS(wxMessageDialog)
|
||||
#endif
|
||||
|
||||
#if wxUSE_GAUGE
|
||||
#ifdef wx_motif
|
||||
#include "../../contrib/xmgauge/gauge.h"
|
||||
#endif
|
||||
#include "wx_gauge.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl)
|
||||
#endif
|
||||
|
||||
#include "wx/grid.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxGenericGrid, wxPanel)
|
||||
|
||||
///// Event tables (also must be in one, statically-linked file for shared libraries)
|
||||
|
||||
// This is the base, wxEvtHandler 'bootstrap' code which is expanded manually here
|
||||
const wxEventTable *wxEvtHandler::GetEventTable() const { return &wxEvtHandler::sm_eventTable; }
|
||||
|
||||
const wxEventTable wxEvtHandler::sm_eventTable =
|
||||
{ NULL, &wxEvtHandler::sm_eventTableEntries[0] };
|
||||
|
||||
const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0,
|
||||
#ifdef __SGI_CC__
|
||||
0L
|
||||
#else
|
||||
NULL
|
||||
#endif
|
||||
}
|
||||
};
|
||||
|
||||
BEGIN_EVENT_TABLE(wxFrame, wxWindow)
|
||||
EVT_SIZE(wxFrame::OnSize)
|
||||
EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight)
|
||||
EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)
|
||||
EVT_IDLE(wxFrame::OnIdle)
|
||||
EVT_CLOSE(wxFrame::OnCloseWindow)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxDialog, wxPanel)
|
||||
EVT_BUTTON(wxID_OK, wxDialog::OnOK)
|
||||
EVT_BUTTON(wxID_APPLY, wxDialog::OnApply)
|
||||
EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel)
|
||||
EVT_CHAR_HOOK(wxDialog::OnCharHook)
|
||||
EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged)
|
||||
EVT_CLOSE(wxDialog::OnCloseWindow)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler)
|
||||
EVT_CHAR(wxWindow::OnChar)
|
||||
EVT_SIZE(wxWindow::Size)
|
||||
EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground)
|
||||
EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged)
|
||||
EVT_INIT_DIALOG(wxWindow::OnInitDialog)
|
||||
EVT_IDLE(wxWindow::OnIdle)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxScrolledWindow, wxWindow)
|
||||
EVT_SCROLL(wxScrolledWindow::OnScroll)
|
||||
EVT_SIZE(wxScrolledWindow::OnSize)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxPanel, wxWindow)
|
||||
EVT_SYS_COLOUR_CHANGED(wxPanel::OnSysColourChanged)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
|
||||
EVT_CHAR(wxTextCtrl::OnChar)
|
||||
EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
|
||||
EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#ifdef wx_msw
|
||||
BEGIN_EVENT_TABLE(wxMDIParentWindow, wxFrame)
|
||||
EVT_SIZE(wxMDIParentWindow::OnSize)
|
||||
EVT_ACTIVATE(wxMDIParentWindow::OnActivate)
|
||||
EVT_SYS_COLOUR_CHANGED(wxMDIParentWindow::OnSysColourChanged)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow)
|
||||
EVT_SCROLL(wxMDIClientWindow::OnScroll)
|
||||
END_EVENT_TABLE()
|
||||
#endif
|
||||
|
||||
BEGIN_EVENT_TABLE(wxToolBarBase, wxControl)
|
||||
EVT_SCROLL(wxToolBarBase::OnScroll)
|
||||
EVT_SIZE(wxToolBarBase::OnSize)
|
||||
EVT_IDLE(wxToolBarBase::OnIdle)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxToolBarSimple, wxToolBarBase)
|
||||
EVT_SIZE(wxToolBarSimple::OnSize)
|
||||
EVT_PAINT(wxToolBarSimple::OnPaint)
|
||||
EVT_KILL_FOCUS(wxToolBarSimple::OnKillFocus)
|
||||
EVT_MOUSE_EVENTS(wxToolBarSimple::OnMouseEvent)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#ifdef wx_msw
|
||||
BEGIN_EVENT_TABLE(wxToolBarMSW, wxToolBarBase)
|
||||
EVT_SIZE(wxToolBarMSW::OnSize)
|
||||
EVT_PAINT(wxToolBarMSW::OnPaint)
|
||||
EVT_MOUSE_EVENTS(wxToolBarMSW::OnMouseEvent)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxToolBar95, wxToolBarBase)
|
||||
EVT_SIZE(wxToolBar95::OnSize)
|
||||
EVT_PAINT(wxToolBar95::OnPaint)
|
||||
EVT_KILL_FOCUS(wxToolBar95::OnKillFocus)
|
||||
EVT_MOUSE_EVENTS(wxToolBar95::OnMouseEvent)
|
||||
EVT_SYS_COLOUR_CHANGED(wxToolBar95::OnSysColourChanged)
|
||||
END_EVENT_TABLE()
|
||||
#endif
|
||||
|
||||
BEGIN_EVENT_TABLE(wxGenericGrid, wxPanel)
|
||||
EVT_SIZE(wxGenericGrid::OnSize)
|
||||
EVT_PAINT(wxGenericGrid::OnPaint)
|
||||
EVT_MOUSE_EVENTS(wxGenericGrid::OnMouseEvent)
|
||||
EVT_TEXT(wxGRID_TEXT_CTRL, wxGenericGrid::OnText)
|
||||
EVT_COMMAND_SCROLL(wxGRID_HSCROLL, wxGenericGrid::OnGridScroll)
|
||||
EVT_COMMAND_SCROLL(wxGRID_VSCROLL, wxGenericGrid::OnGridScroll)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxControl, wxWindow)
|
||||
EVT_ERASE_BACKGROUND(wxControl::OnEraseBackground)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#if !defined(wx_msw) || wxUSE_GENERIC_DIALOGS_IN_MSW
|
||||
BEGIN_EVENT_TABLE(wxGenericMessageDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes)
|
||||
EVT_BUTTON(wxID_NO, wxGenericMessageDialog::OnNo)
|
||||
EVT_BUTTON(wxID_CANCEL, wxGenericMessageDialog::OnCancel)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxGenericColourDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_ADD_CUSTOM, wxGenericColourDialog::OnAddCustom)
|
||||
EVT_SLIDER(wxID_RED_SLIDER, wxGenericColourDialog::OnRedSlider)
|
||||
EVT_SLIDER(wxID_GREEN_SLIDER, wxGenericColourDialog::OnGreenSlider)
|
||||
EVT_SLIDER(wxID_BLUE_SLIDER, wxGenericColourDialog::OnBlueSlider)
|
||||
EVT_PAINT(wxGenericColourDialog::OnPaint)
|
||||
EVT_MOUSE_EVENTS(wxGenericColourDialog::OnMouseEvent)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxGenericFontDialog, wxDialog)
|
||||
EVT_CHECKBOX(wxID_FONT_UNDERLINE, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_CHOICE(wxID_FONT_STYLE, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_PAINT(wxGenericFontDialog::OnPaint)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxGenericPrintDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_OK, wxGenericPrintDialog::OnOK)
|
||||
EVT_BUTTON(wxPRINTID_SETUP, wxGenericPrintDialog::OnSetup)
|
||||
EVT_RADIOBOX(wxPRINTID_RANGE, wxGenericPrintDialog::OnRange)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#endif
|
||||
|
||||
BEGIN_EVENT_TABLE(wxTextEntryDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_OK, wxTextEntryDialog::OnOK)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxSingleChoiceDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_OK, wxSingleChoiceDialog::OnOK)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#include "wx/prntbase.h"
|
||||
|
||||
BEGIN_EVENT_TABLE(wxPrintAbortDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_CANCEL, wxPrintAbortDialog::OnCancel)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxPreviewControlBar, wxWindow)
|
||||
EVT_BUTTON(wxID_PREVIEW_CLOSE, wxPreviewControlBar::OnClose)
|
||||
EVT_BUTTON(wxID_PREVIEW_PRINT, wxPreviewControlBar::OnPrint)
|
||||
EVT_BUTTON(wxID_PREVIEW_PREVIOUS, wxPreviewControlBar::OnPrevious)
|
||||
EVT_BUTTON(wxID_PREVIEW_NEXT, wxPreviewControlBar::OnNext)
|
||||
EVT_CHOICE(wxID_PREVIEW_ZOOM, wxPreviewControlBar::OnZoom)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* Dafaults for wxWindow etc. */
|
||||
const wxSize wxDefaultSize(-1, -1);
|
||||
const wxPoint wxDefaultPosition(-1, -1);
|
||||
|
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "wx/dc.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// constants
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -16,6 +16,9 @@
|
||||
#include "wx/image.h"
|
||||
#include <math.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// local data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/dcmemory.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxMemoryDC
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -24,6 +24,9 @@
|
||||
#include "wx/image.h"
|
||||
#include "wx/log.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// start and end of document/page
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
#include "wx/dcscreen.h"
|
||||
#include "wx/window.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// global data initialization
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
#include "wx/dialog.h"
|
||||
#include "wx/frame.h"
|
||||
#include "wx/app.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -18,6 +18,8 @@
|
||||
#include "wx/intl.h"
|
||||
#include "wx/utils.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "gdk/gdkprivate.h"
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
|
@@ -16,151 +16,156 @@
|
||||
#include "wx/intl.h"
|
||||
#include "wx/generic/msgdlgg.h"
|
||||
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxFileDialog
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void gtk_filedialog_ok_callback( GtkWidget *WXUNUSED(widget), gpointer data )
|
||||
{
|
||||
wxFileDialog *dialog = (wxFileDialog*)data;
|
||||
wxCommandEvent event(wxEVT_NULL);
|
||||
int style;
|
||||
wxFileDialog *dialog = (wxFileDialog*)data;
|
||||
wxCommandEvent event(wxEVT_NULL);
|
||||
int style;
|
||||
|
||||
style=dialog->GetStyle();
|
||||
style = dialog->GetStyle();
|
||||
|
||||
if((style&wxSAVE)&&(style&wxOVERWRITE_PROMPT))
|
||||
if(wxFileExists(gtk_file_selection_get_filename(GTK_FILE_SELECTION(dialog->m_widget) ))) {
|
||||
if((style&wxSAVE)&&(style&wxOVERWRITE_PROMPT))
|
||||
{
|
||||
if(wxFileExists(gtk_file_selection_get_filename(GTK_FILE_SELECTION(dialog->m_widget) )))
|
||||
{
|
||||
if(wxMessageBox(_("File exists. Overwrite?"),
|
||||
_("Confirm"), wxYES_NO) != wxYES)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
dialog->OnOK( event );
|
||||
dialog->OnOK( event );
|
||||
}
|
||||
|
||||
void gtk_filedialog_cancel_callback( GtkWidget *WXUNUSED(widget), gpointer data )
|
||||
{
|
||||
wxFileDialog *dialog = (wxFileDialog*)data;
|
||||
wxCommandEvent event(wxEVT_NULL);
|
||||
dialog->OnCancel( event );
|
||||
wxFileDialog *dialog = (wxFileDialog*)data;
|
||||
wxCommandEvent event(wxEVT_NULL);
|
||||
dialog->OnCancel( event );
|
||||
}
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFileDialog,wxDialog)
|
||||
|
||||
wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
|
||||
const wxString& defaultDir, const wxString& defaultFileName,
|
||||
const wxString& wildCard,
|
||||
long style, const wxPoint& pos )
|
||||
wxFileDialog::wxFileDialog( wxWindow *parent, const wxString& message,
|
||||
const wxString& defaultDir, const wxString& defaultFileName,
|
||||
const wxString& wildCard,
|
||||
long style, const wxPoint& pos )
|
||||
{
|
||||
m_needParent = FALSE;
|
||||
m_needParent = FALSE;
|
||||
|
||||
PreCreation( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, "filedialog" );
|
||||
m_message = message;
|
||||
m_path = "";
|
||||
m_fileName = defaultFileName;
|
||||
m_dir = defaultDir;
|
||||
m_wildCard = wildCard;
|
||||
m_dialogStyle = style;
|
||||
m_filterIndex = 1;
|
||||
PreCreation( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, "filedialog" );
|
||||
m_message = message;
|
||||
m_path = "";
|
||||
m_fileName = defaultFileName;
|
||||
m_dir = defaultDir;
|
||||
m_wildCard = wildCard;
|
||||
m_dialogStyle = style;
|
||||
m_filterIndex = 1;
|
||||
|
||||
m_widget = gtk_file_selection_new( m_message );
|
||||
m_widget = gtk_file_selection_new( m_message );
|
||||
|
||||
int x = (gdk_screen_width () - 400) / 2;
|
||||
int y = (gdk_screen_height () - 400) / 2;
|
||||
gtk_widget_set_uposition( m_widget, x, y );
|
||||
int x = (gdk_screen_width () - 400) / 2;
|
||||
int y = (gdk_screen_height () - 400) / 2;
|
||||
gtk_widget_set_uposition( m_widget, x, y );
|
||||
|
||||
GtkFileSelection *sel = GTK_FILE_SELECTION(m_widget);
|
||||
GtkFileSelection *sel = GTK_FILE_SELECTION(m_widget);
|
||||
|
||||
m_path.Append(m_dir);
|
||||
if(! m_path.IsEmpty() && m_path.Last()!='/') m_path.Append('/');
|
||||
m_path.Append(m_fileName);
|
||||
m_path.Append(m_dir);
|
||||
if(! m_path.IsEmpty() && m_path.Last()!='/') m_path.Append('/');
|
||||
m_path.Append(m_fileName);
|
||||
|
||||
if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path);
|
||||
if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path);
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this );
|
||||
gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this );
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_filedialog_cancel_callback), (gpointer*)this );
|
||||
gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_filedialog_cancel_callback), (gpointer*)this );
|
||||
}
|
||||
|
||||
int wxFileDialog::ShowModal(void)
|
||||
{
|
||||
int ret = wxDialog::ShowModal();
|
||||
int ret = wxDialog::ShowModal();
|
||||
|
||||
if (ret == wxID_OK)
|
||||
{
|
||||
m_fileName = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
||||
m_path = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
||||
}
|
||||
return ret;
|
||||
if (ret == wxID_OK)
|
||||
{
|
||||
m_fileName = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
||||
m_path = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
char *wxFileSelector(const char *title,
|
||||
const char *defaultDir, const char *defaultFileName,
|
||||
const char *defaultExtension, const char *filter, int flags,
|
||||
wxWindow *parent, int x, int y)
|
||||
char *wxFileSelector( const char *title,
|
||||
const char *defaultDir, const char *defaultFileName,
|
||||
const char *defaultExtension, const char *filter, int flags,
|
||||
wxWindow *parent, int x, int y )
|
||||
{
|
||||
wxString filter2("");
|
||||
if ( defaultExtension && !filter )
|
||||
filter2 = wxString("*.") + wxString(defaultExtension) ;
|
||||
else if ( filter )
|
||||
filter2 = filter;
|
||||
wxString filter2("");
|
||||
if ( defaultExtension && !filter )
|
||||
filter2 = wxString("*.") + wxString(defaultExtension) ;
|
||||
else if ( filter )
|
||||
filter2 = filter;
|
||||
|
||||
wxString defaultDirString;
|
||||
if (defaultDir)
|
||||
defaultDirString = defaultDir;
|
||||
else
|
||||
defaultDirString = "";
|
||||
wxString defaultDirString;
|
||||
if (defaultDir)
|
||||
defaultDirString = defaultDir;
|
||||
else
|
||||
defaultDirString = "";
|
||||
|
||||
wxString defaultFilenameString;
|
||||
if (defaultFileName)
|
||||
defaultFilenameString = defaultFileName;
|
||||
else
|
||||
defaultFilenameString = "";
|
||||
wxString defaultFilenameString;
|
||||
if (defaultFileName)
|
||||
defaultFilenameString = defaultFileName;
|
||||
else
|
||||
defaultFilenameString = "";
|
||||
|
||||
wxFileDialog fileDialog( parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y) );
|
||||
|
||||
wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString,
|
||||
filter2, flags, wxPoint(x, y));
|
||||
|
||||
if ( fileDialog.ShowModal() == wxID_OK )
|
||||
{
|
||||
strcpy(wxBuffer, (const char *)fileDialog.GetPath());
|
||||
return wxBuffer;
|
||||
}
|
||||
else
|
||||
return (char *) NULL;
|
||||
if ( fileDialog.ShowModal() == wxID_OK )
|
||||
{
|
||||
strcpy(wxBuffer, (const char *)fileDialog.GetPath());
|
||||
return wxBuffer;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (char *) NULL;
|
||||
}
|
||||
}
|
||||
|
||||
char* wxLoadFileSelector(const char *what, const char *extension, const char *default_name,
|
||||
wxWindow *parent )
|
||||
char* wxLoadFileSelector( const char *what, const char *extension, const char *default_name, wxWindow *parent )
|
||||
{
|
||||
char *ext = (char *)extension;
|
||||
char *ext = (char *)extension;
|
||||
|
||||
char prompt[50];
|
||||
wxString str = _("Load %s file");
|
||||
sprintf(prompt, str, what);
|
||||
char prompt[50];
|
||||
wxString str = _("Load %s file");
|
||||
sprintf(prompt, str, what);
|
||||
|
||||
if (*ext == '.') ext++;
|
||||
char wild[60];
|
||||
sprintf(wild, "*.%s", ext);
|
||||
if (*ext == '.') ext++;
|
||||
char wild[60];
|
||||
sprintf(wild, "*.%s", ext);
|
||||
|
||||
return wxFileSelector (prompt, (const char *) NULL, default_name, ext, wild, 0, parent);
|
||||
return wxFileSelector (prompt, (const char *) NULL, default_name, ext, wild, 0, parent);
|
||||
}
|
||||
|
||||
char* wxSaveFileSelector(const char *what, const char *extension, const char *default_name,
|
||||
wxWindow *parent )
|
||||
{
|
||||
char *ext = (char *)extension;
|
||||
char *ext = (char *)extension;
|
||||
|
||||
char prompt[50];
|
||||
wxString str = _("Save %s file");
|
||||
sprintf(prompt, str, what);
|
||||
char prompt[50];
|
||||
wxString str = _("Save %s file");
|
||||
sprintf(prompt, str, what);
|
||||
|
||||
if (*ext == '.') ext++;
|
||||
char wild[60];
|
||||
sprintf(wild, "*.%s", ext);
|
||||
if (*ext == '.') ext++;
|
||||
char wild[60];
|
||||
sprintf(wild, "*.%s", ext);
|
||||
|
||||
return wxFileSelector (prompt, (const char *) NULL, default_name, ext, wild, 0, parent);
|
||||
return wxFileSelector (prompt, (const char *) NULL, default_name, ext, wild, 0, parent);
|
||||
}
|
||||
|
||||
|
@@ -16,6 +16,8 @@
|
||||
#include "wx/log.h"
|
||||
#include <strings.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// local data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -19,6 +19,10 @@
|
||||
#include "wx/toolbar.h"
|
||||
#include "wx/statusbr.h"
|
||||
#include "wx/dcclient.h"
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -12,6 +12,8 @@
|
||||
#endif
|
||||
|
||||
#include "wx/gauge.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxGauge
|
||||
|
@@ -18,6 +18,9 @@
|
||||
#include "wx/intl.h"
|
||||
#include "wx/checklst.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// conditional compilation
|
||||
//-------------------------------------------------------------------------
|
||||
|
270
src/gtk/mdi.cpp
270
src/gtk/mdi.cpp
@@ -14,9 +14,13 @@
|
||||
#include "wx/mdi.h"
|
||||
#include "wx/dialog.h"
|
||||
#include "wx/menu.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
#include <wx/intl.h>
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// constants
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -35,16 +39,16 @@ extern wxList wxPendingDelete;
|
||||
|
||||
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
|
||||
{
|
||||
if ((win->m_x == alloc->x) &&
|
||||
(win->m_y == alloc->y) &&
|
||||
(win->m_width == alloc->width) &&
|
||||
(win->m_height == alloc->height) &&
|
||||
(win->m_sizeSet))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ((win->m_x == alloc->x) &&
|
||||
(win->m_y == alloc->y) &&
|
||||
(win->m_width == alloc->width) &&
|
||||
(win->m_height == alloc->height) &&
|
||||
(win->m_sizeSet))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
|
||||
win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -56,19 +60,19 @@ static void gtk_page_change_callback( GtkNotebook *WXUNUSED(widget),
|
||||
gint WXUNUSED(nPage),
|
||||
wxMDIClientWindow *client_win )
|
||||
{
|
||||
wxNode *node = client_win->m_children.First();
|
||||
while (node)
|
||||
{
|
||||
wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data();
|
||||
if (child_frame->m_page == page)
|
||||
wxNode *node = client_win->m_children.First();
|
||||
while (node)
|
||||
{
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)client_win->m_parent;
|
||||
mdi_frame->m_currentChild = child_frame;
|
||||
mdi_frame->SetMDIMenuBar( child_frame->m_menuBar );
|
||||
return;
|
||||
wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data();
|
||||
if (child_frame->m_page == page)
|
||||
{
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)client_win->m_parent;
|
||||
mdi_frame->m_currentChild = child_frame;
|
||||
mdi_frame->SetMDIMenuBar( child_frame->m_menuBar );
|
||||
return;
|
||||
}
|
||||
node = node->Next();
|
||||
}
|
||||
node = node->Next();
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -82,9 +86,9 @@ END_EVENT_TABLE()
|
||||
|
||||
wxMDIParentFrame::wxMDIParentFrame(void)
|
||||
{
|
||||
m_clientWindow = (wxMDIClientWindow *) NULL;
|
||||
m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
m_parentFrameActive = TRUE;
|
||||
m_clientWindow = (wxMDIClientWindow *) NULL;
|
||||
m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
m_parentFrameActive = TRUE;
|
||||
}
|
||||
|
||||
wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
|
||||
@@ -92,10 +96,10 @@ wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
|
||||
const wxPoint& pos, const wxSize& size,
|
||||
long style, const wxString& name )
|
||||
{
|
||||
m_clientWindow = (wxMDIClientWindow *) NULL;
|
||||
m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
m_parentFrameActive = TRUE;
|
||||
Create( parent, id, title, pos, size, style, name );
|
||||
m_clientWindow = (wxMDIClientWindow *) NULL;
|
||||
m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
m_parentFrameActive = TRUE;
|
||||
Create( parent, id, title, pos, size, style, name );
|
||||
}
|
||||
|
||||
wxMDIParentFrame::~wxMDIParentFrame(void)
|
||||
@@ -107,75 +111,75 @@ bool wxMDIParentFrame::Create( wxWindow *parent,
|
||||
const wxPoint& pos, const wxSize& size,
|
||||
long style, const wxString& name )
|
||||
{
|
||||
wxFrame::Create( parent, id, title, pos, size, style, name );
|
||||
wxFrame::Create( parent, id, title, pos, size, style, name );
|
||||
|
||||
OnCreateClient();
|
||||
OnCreateClient();
|
||||
|
||||
return TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::GtkOnSize( int x, int y, int width, int height )
|
||||
{
|
||||
wxFrame::GtkOnSize( x, y, width, height );
|
||||
wxFrame::GtkOnSize( x, y, width, height );
|
||||
|
||||
if (m_mdiMenuBar)
|
||||
{
|
||||
m_mdiMenuBar->m_x = 0;
|
||||
m_mdiMenuBar->m_y = 0;
|
||||
m_mdiMenuBar->m_width = m_width;
|
||||
m_mdiMenuBar->m_height = wxMENU_HEIGHT;
|
||||
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_mdiMenuBar->m_widget, 0, 0 );
|
||||
gtk_widget_set_usize( m_mdiMenuBar->m_widget, m_width, wxMENU_HEIGHT );
|
||||
}
|
||||
if (m_mdiMenuBar)
|
||||
{
|
||||
m_mdiMenuBar->m_x = 0;
|
||||
m_mdiMenuBar->m_y = 0;
|
||||
m_mdiMenuBar->m_width = m_width;
|
||||
m_mdiMenuBar->m_height = wxMENU_HEIGHT;
|
||||
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_mdiMenuBar->m_widget, 0, 0 );
|
||||
gtk_widget_set_usize( m_mdiMenuBar->m_widget, m_width, wxMENU_HEIGHT );
|
||||
}
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::SetMDIMenuBar( wxMenuBar *menu_bar )
|
||||
{
|
||||
if (m_mdiMenuBar) m_mdiMenuBar->Show( FALSE );
|
||||
m_mdiMenuBar = menu_bar;
|
||||
if (m_mdiMenuBar)
|
||||
{
|
||||
m_mdiMenuBar->m_x = 0;
|
||||
m_mdiMenuBar->m_y = 0;
|
||||
m_mdiMenuBar->m_width = m_width;
|
||||
m_mdiMenuBar->m_height = wxMENU_HEIGHT;
|
||||
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_mdiMenuBar->m_widget, 0, 0 );
|
||||
gtk_widget_set_usize( m_mdiMenuBar->m_widget, m_width, wxMENU_HEIGHT );
|
||||
m_mdiMenuBar->Show( TRUE );
|
||||
}
|
||||
if (m_mdiMenuBar) m_mdiMenuBar->Show( FALSE );
|
||||
m_mdiMenuBar = menu_bar;
|
||||
if (m_mdiMenuBar)
|
||||
{
|
||||
m_mdiMenuBar->m_x = 0;
|
||||
m_mdiMenuBar->m_y = 0;
|
||||
m_mdiMenuBar->m_width = m_width;
|
||||
m_mdiMenuBar->m_height = wxMENU_HEIGHT;
|
||||
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_mdiMenuBar->m_widget, 0, 0 );
|
||||
gtk_widget_set_usize( m_mdiMenuBar->m_widget, m_width, wxMENU_HEIGHT );
|
||||
m_mdiMenuBar->Show( TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
|
||||
{
|
||||
wxFrame::GetClientSize( width, height );
|
||||
wxFrame::GetClientSize( width, height );
|
||||
}
|
||||
|
||||
wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const
|
||||
{
|
||||
return m_currentChild;
|
||||
return m_currentChild;
|
||||
}
|
||||
|
||||
wxMDIClientWindow *wxMDIParentFrame::GetClientWindow(void) const
|
||||
{
|
||||
return m_clientWindow;
|
||||
return m_clientWindow;
|
||||
}
|
||||
|
||||
wxMDIClientWindow *wxMDIParentFrame::OnCreateClient(void)
|
||||
{
|
||||
m_clientWindow = new wxMDIClientWindow( this );
|
||||
return m_clientWindow;
|
||||
m_clientWindow = new wxMDIClientWindow( this );
|
||||
return m_clientWindow;
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::ActivateNext(void)
|
||||
{
|
||||
if (m_clientWindow)
|
||||
gtk_notebook_next_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
|
||||
if (m_clientWindow)
|
||||
gtk_notebook_next_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::ActivatePrevious(void)
|
||||
{
|
||||
if (m_clientWindow)
|
||||
gtk_notebook_prev_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
|
||||
if (m_clientWindow)
|
||||
gtk_notebook_prev_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::OnActivate( wxActivateEvent& WXUNUSED(event) )
|
||||
@@ -193,13 +197,13 @@ void wxMDIParentFrame::OnSysColourChanged( wxSysColourChangedEvent& WXUNUSED(eve
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxFrame)
|
||||
|
||||
BEGIN_EVENT_TABLE(wxMDIChildFrame, wxFrame)
|
||||
EVT_ACTIVATE(wxMDIChildFrame::OnActivate)
|
||||
EVT_ACTIVATE(wxMDIChildFrame::OnActivate)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
wxMDIChildFrame::wxMDIChildFrame(void)
|
||||
{
|
||||
m_menuBar = (wxMenuBar *) NULL;
|
||||
m_page = (GtkNotebookPage *) NULL;
|
||||
m_menuBar = (wxMenuBar *) NULL;
|
||||
m_page = (GtkNotebookPage *) NULL;
|
||||
}
|
||||
|
||||
wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent,
|
||||
@@ -207,23 +211,23 @@ wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent,
|
||||
const wxPoint& WXUNUSED(pos), const wxSize& size,
|
||||
long style, const wxString& name )
|
||||
{
|
||||
m_menuBar = (wxMenuBar *) NULL;
|
||||
m_page = (GtkNotebookPage *) NULL;
|
||||
Create( parent, id, title, wxDefaultPosition, size, style, name );
|
||||
m_menuBar = (wxMenuBar *) NULL;
|
||||
m_page = (GtkNotebookPage *) NULL;
|
||||
Create( parent, id, title, wxDefaultPosition, size, style, name );
|
||||
}
|
||||
|
||||
wxMDIChildFrame::~wxMDIChildFrame(void)
|
||||
{
|
||||
if (m_menuBar)
|
||||
{
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
|
||||
if (mdi_frame->m_currentChild == this)
|
||||
if (m_menuBar)
|
||||
{
|
||||
mdi_frame->SetMDIMenuBar( (wxMenuBar *) NULL );
|
||||
mdi_frame->m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
|
||||
if (mdi_frame->m_currentChild == this)
|
||||
{
|
||||
mdi_frame->SetMDIMenuBar( (wxMenuBar *) NULL );
|
||||
mdi_frame->m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
}
|
||||
delete m_menuBar;
|
||||
}
|
||||
delete m_menuBar;
|
||||
}
|
||||
}
|
||||
|
||||
bool wxMDIChildFrame::Create( wxMDIParentFrame *parent,
|
||||
@@ -231,64 +235,64 @@ bool wxMDIChildFrame::Create( wxMDIParentFrame *parent,
|
||||
const wxPoint& WXUNUSED(pos), const wxSize& size,
|
||||
long style, const wxString& name )
|
||||
{
|
||||
m_title = title;
|
||||
m_title = title;
|
||||
|
||||
return wxWindow::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name );
|
||||
return wxWindow::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name );
|
||||
}
|
||||
|
||||
void wxMDIChildFrame::GetClientSize( int *width, int *height ) const
|
||||
{
|
||||
wxWindow::GetClientSize( width, height );
|
||||
wxWindow::GetClientSize( width, height );
|
||||
}
|
||||
|
||||
void wxMDIChildFrame::AddChild( wxWindow *child )
|
||||
{
|
||||
wxWindow::AddChild( child );
|
||||
wxWindow::AddChild( child );
|
||||
}
|
||||
|
||||
static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
|
||||
{
|
||||
menu->SetInvokingWindow( win );
|
||||
wxNode *node = menu->m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *menuitem = (wxMenuItem*)node->Data();
|
||||
if (menuitem->IsSubMenu())
|
||||
SetInvokingWindow( menuitem->GetSubMenu(), win );
|
||||
node = node->Next();
|
||||
}
|
||||
menu->SetInvokingWindow( win );
|
||||
wxNode *node = menu->m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *menuitem = (wxMenuItem*)node->Data();
|
||||
if (menuitem->IsSubMenu())
|
||||
SetInvokingWindow( menuitem->GetSubMenu(), win );
|
||||
node = node->Next();
|
||||
}
|
||||
}
|
||||
|
||||
void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
|
||||
{
|
||||
m_menuBar = menu_bar;
|
||||
m_menuBar = menu_bar;
|
||||
|
||||
if (m_menuBar)
|
||||
{
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
|
||||
|
||||
if (m_menuBar->m_parent != this)
|
||||
if (m_menuBar)
|
||||
{
|
||||
wxNode *node = m_menuBar->m_menus.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
SetInvokingWindow( menu, this );
|
||||
node = node->Next();
|
||||
}
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
|
||||
|
||||
m_menuBar->m_parent = mdi_frame;
|
||||
if (m_menuBar->m_parent != this)
|
||||
{
|
||||
wxNode *node = m_menuBar->m_menus.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
SetInvokingWindow( menu, this );
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
m_menuBar->m_parent = mdi_frame;
|
||||
}
|
||||
mdi_frame->SetMDIMenuBar( m_menuBar );
|
||||
|
||||
gtk_myfixed_put( GTK_MYFIXED(mdi_frame->m_wxwindow),
|
||||
m_menuBar->m_widget, m_menuBar->m_x, m_menuBar->m_y );
|
||||
}
|
||||
mdi_frame->SetMDIMenuBar( m_menuBar );
|
||||
|
||||
gtk_myfixed_put( GTK_MYFIXED(mdi_frame->m_wxwindow),
|
||||
m_menuBar->m_widget, m_menuBar->m_x, m_menuBar->m_y );
|
||||
}
|
||||
}
|
||||
|
||||
wxMenuBar *wxMDIChildFrame::GetMenuBar()
|
||||
{
|
||||
return m_menuBar;
|
||||
return m_menuBar;
|
||||
}
|
||||
|
||||
void wxMDIChildFrame::Activate(void)
|
||||
@@ -305,24 +309,24 @@ void wxMDIChildFrame::OnActivate( wxActivateEvent &WXUNUSED(event) )
|
||||
|
||||
static void wxInsertChildInMDI( wxMDIClientWindow* parent, wxMDIChildFrame* child )
|
||||
{
|
||||
wxString s = child->m_title;
|
||||
if (s.IsNull()) s = _("MDI child");
|
||||
wxString s = child->m_title;
|
||||
if (s.IsNull()) s = _("MDI child");
|
||||
|
||||
GtkWidget *label_widget = gtk_label_new( s );
|
||||
gtk_misc_set_alignment( GTK_MISC(label_widget), 0.0, 0.5 );
|
||||
GtkWidget *label_widget = gtk_label_new( s );
|
||||
gtk_misc_set_alignment( GTK_MISC(label_widget), 0.0, 0.5 );
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(child->m_widget), "size_allocate",
|
||||
GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
|
||||
gtk_signal_connect( GTK_OBJECT(child->m_widget), "size_allocate",
|
||||
GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
|
||||
|
||||
GtkNotebook *notebook = GTK_NOTEBOOK(parent->m_widget);
|
||||
GtkNotebook *notebook = GTK_NOTEBOOK(parent->m_widget);
|
||||
|
||||
gtk_notebook_append_page( notebook, child->m_widget, label_widget );
|
||||
gtk_notebook_append_page( notebook, child->m_widget, label_widget );
|
||||
|
||||
child->m_page = (GtkNotebookPage*) (g_list_last(notebook->children)->data);
|
||||
child->m_page = (GtkNotebookPage*) (g_list_last(notebook->children)->data);
|
||||
|
||||
gtk_notebook_set_page( notebook, parent->m_children.Number()-1 );
|
||||
gtk_notebook_set_page( notebook, parent->m_children.Number()-1 );
|
||||
|
||||
gtk_page_change_callback( (GtkNotebook *) NULL, child->m_page, 0, parent );
|
||||
gtk_page_change_callback( (GtkNotebook *) NULL, child->m_page, 0, parent );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -337,7 +341,7 @@ wxMDIClientWindow::wxMDIClientWindow(void)
|
||||
|
||||
wxMDIClientWindow::wxMDIClientWindow( wxMDIParentFrame *parent, long style )
|
||||
{
|
||||
CreateClient( parent, style );
|
||||
CreateClient( parent, style );
|
||||
}
|
||||
|
||||
wxMDIClientWindow::~wxMDIClientWindow(void)
|
||||
@@ -346,28 +350,28 @@ wxMDIClientWindow::~wxMDIClientWindow(void)
|
||||
|
||||
bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style )
|
||||
{
|
||||
m_needParent = TRUE;
|
||||
m_needParent = TRUE;
|
||||
|
||||
m_insertCallback = (wxInsertChildFunction)wxInsertChildInMDI;
|
||||
m_insertCallback = (wxInsertChildFunction)wxInsertChildInMDI;
|
||||
|
||||
PreCreation( parent, -1, wxPoint(10,10), wxSize(100,100), style, "wxMDIClientWindow" );
|
||||
PreCreation( parent, -1, wxPoint(10,10), wxSize(100,100), style, "wxMDIClientWindow" );
|
||||
|
||||
m_widget = gtk_notebook_new();
|
||||
m_widget = gtk_notebook_new();
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page",
|
||||
GTK_SIGNAL_FUNC(gtk_page_change_callback), (gpointer)this );
|
||||
gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page",
|
||||
GTK_SIGNAL_FUNC(gtk_page_change_callback), (gpointer)this );
|
||||
|
||||
gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
|
||||
gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
|
||||
|
||||
m_parent->AddChild( this );
|
||||
m_parent->AddChild( this );
|
||||
|
||||
(m_parent->m_insertCallback)( m_parent, this );
|
||||
(m_parent->m_insertCallback)( m_parent, this );
|
||||
|
||||
PostCreation();
|
||||
PostCreation();
|
||||
|
||||
Show( TRUE );
|
||||
Show( TRUE );
|
||||
|
||||
return TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
544
src/gtk/menu.cpp
544
src/gtk/menu.cpp
@@ -16,6 +16,9 @@
|
||||
#include "wx/log.h"
|
||||
#include "wx/intl.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxMenuBar
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -24,124 +27,131 @@ IMPLEMENT_DYNAMIC_CLASS(wxMenuBar,wxWindow)
|
||||
|
||||
wxMenuBar::wxMenuBar()
|
||||
{
|
||||
m_needParent = FALSE; // hmmm
|
||||
m_needParent = FALSE; // hmmm
|
||||
|
||||
PreCreation( (wxWindow *) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, "menu" );
|
||||
PreCreation( (wxWindow *) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, "menu" );
|
||||
|
||||
m_menus.DeleteContents( TRUE );
|
||||
m_menus.DeleteContents( TRUE );
|
||||
|
||||
m_menubar = gtk_menu_bar_new();
|
||||
m_menubar = gtk_menu_bar_new();
|
||||
|
||||
m_widget = GTK_WIDGET(m_menubar);
|
||||
m_widget = GTK_WIDGET(m_menubar);
|
||||
|
||||
PostCreation();
|
||||
PostCreation();
|
||||
|
||||
Show( TRUE );
|
||||
Show( TRUE );
|
||||
}
|
||||
|
||||
void wxMenuBar::Append( wxMenu *menu, const wxString &title )
|
||||
{
|
||||
m_menus.Append( menu );
|
||||
menu->m_title = title; // ??????
|
||||
m_menus.Append( menu );
|
||||
menu->m_title = title;
|
||||
|
||||
int pos;
|
||||
do {
|
||||
pos = menu->m_title.First( '&' );
|
||||
if (pos != -1) menu->m_title.Remove( pos, 1 );
|
||||
} while (pos != -1);
|
||||
int pos;
|
||||
do
|
||||
{
|
||||
pos = menu->m_title.First( '&' );
|
||||
if (pos != -1) menu->m_title.Remove( pos, 1 );
|
||||
} while (pos != -1);
|
||||
|
||||
GtkWidget *root_menu;
|
||||
root_menu = gtk_menu_item_new_with_label( WXSTRINGCAST(menu->m_title) );
|
||||
gtk_widget_show( root_menu );
|
||||
gtk_menu_item_set_submenu( GTK_MENU_ITEM(root_menu), menu->m_menu );
|
||||
GtkWidget *root_menu;
|
||||
root_menu = gtk_menu_item_new_with_label( WXSTRINGCAST(menu->m_title) );
|
||||
gtk_widget_show( root_menu );
|
||||
gtk_menu_item_set_submenu( GTK_MENU_ITEM(root_menu), menu->m_menu );
|
||||
|
||||
gtk_menu_bar_append( GTK_MENU_BAR(m_menubar), root_menu );
|
||||
gtk_menu_bar_append( GTK_MENU_BAR(m_menubar), root_menu );
|
||||
}
|
||||
|
||||
static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString )
|
||||
{
|
||||
if (menu->m_title == menuString)
|
||||
{
|
||||
int res = menu->FindItem( itemString );
|
||||
if (res != -1) return res;
|
||||
}
|
||||
wxNode *node = menu->m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->IsSubMenu())
|
||||
return FindMenuItemRecursive(item->GetSubMenu(), menuString, itemString);
|
||||
node = node->Next();
|
||||
}
|
||||
return -1;
|
||||
if (menu->m_title == menuString)
|
||||
{
|
||||
int res = menu->FindItem( itemString );
|
||||
if (res != -1) return res;
|
||||
}
|
||||
|
||||
wxNode *node = menu->m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->IsSubMenu())
|
||||
return FindMenuItemRecursive(item->GetSubMenu(), menuString, itemString);
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int wxMenuBar::FindMenuItem( const wxString &menuString, const wxString &itemString ) const
|
||||
{
|
||||
wxNode *node = m_menus.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
int res = FindMenuItemRecursive( menu, menuString, itemString);
|
||||
if (res != -1) return res;
|
||||
node = node->Next();
|
||||
}
|
||||
return -1;
|
||||
wxNode *node = m_menus.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
int res = FindMenuItemRecursive( menu, menuString, itemString);
|
||||
if (res != -1) return res;
|
||||
node = node->Next();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Find a wxMenuItem using its id. Recurses down into sub-menus
|
||||
/* Find a wxMenuItem using its id. Recurses down into sub-menus */
|
||||
static wxMenuItem* FindMenuItemByIdRecursive(const wxMenu* menu, int id)
|
||||
{
|
||||
wxMenuItem* result = menu->FindItem(id);
|
||||
wxMenuItem* result = menu->FindItem(id);
|
||||
|
||||
wxNode *node = menu->m_items.First();
|
||||
while ( node && result == NULL ) {
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if ( item->IsSubMenu() )
|
||||
result = FindMenuItemByIdRecursive( item->GetSubMenu(), id );
|
||||
node = node->Next();
|
||||
}
|
||||
wxNode *node = menu->m_items.First();
|
||||
while ( node && result == NULL )
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->IsSubMenu())
|
||||
{
|
||||
result = FindMenuItemByIdRecursive( item->GetSubMenu(), id );
|
||||
}
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
return result;
|
||||
return result;
|
||||
}
|
||||
|
||||
wxMenuItem* wxMenuBar::FindMenuItemById( int id ) const
|
||||
{
|
||||
wxMenuItem* result = 0;
|
||||
wxNode *node = m_menus.First();
|
||||
while (node && result == 0)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
result = FindMenuItemByIdRecursive( menu, id );
|
||||
node = node->Next();
|
||||
}
|
||||
return result;
|
||||
wxMenuItem* result = 0;
|
||||
wxNode *node = m_menus.First();
|
||||
while (node && result == 0)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
result = FindMenuItemByIdRecursive( menu, id );
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void wxMenuBar::Check( int id, bool check )
|
||||
{
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) item->Check(check);
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) item->Check(check);
|
||||
}
|
||||
|
||||
bool wxMenuBar::Checked( int id ) const
|
||||
{
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) return item->IsChecked();
|
||||
return FALSE;
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) return item->IsChecked();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void wxMenuBar::Enable( int id, bool enable )
|
||||
{
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) item->Enable(enable);
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) item->Enable(enable);
|
||||
}
|
||||
|
||||
bool wxMenuBar::Enabled( int id ) const
|
||||
{
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) return item->IsEnabled();
|
||||
return FALSE;
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) return item->IsEnabled();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -150,27 +160,27 @@ bool wxMenuBar::Enabled( int id ) const
|
||||
|
||||
static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
|
||||
{
|
||||
int id = menu->FindMenuIdByMenuItem(widget);
|
||||
int id = menu->FindMenuIdByMenuItem(widget);
|
||||
|
||||
// should find it for normal (not popup) menu
|
||||
wxASSERT( (id != -1) || (menu->GetInvokingWindow() != NULL) );
|
||||
/* should find it for normal (not popup) menu */
|
||||
wxASSERT( (id != -1) || (menu->GetInvokingWindow() != NULL) );
|
||||
|
||||
if (!menu->IsEnabled(id)) return;
|
||||
if (!menu->IsEnabled(id)) return;
|
||||
|
||||
wxCommandEvent event( wxEVT_COMMAND_MENU_SELECTED, id );
|
||||
event.SetEventObject( menu );
|
||||
event.SetInt(id );
|
||||
wxCommandEvent event( wxEVT_COMMAND_MENU_SELECTED, id );
|
||||
event.SetEventObject( menu );
|
||||
event.SetInt(id );
|
||||
|
||||
if (menu->m_callback)
|
||||
{
|
||||
(void) (*(menu->m_callback)) (*menu, event);
|
||||
return;
|
||||
}
|
||||
if (menu->m_callback)
|
||||
{
|
||||
(void) (*(menu->m_callback)) (*menu, event);
|
||||
return;
|
||||
}
|
||||
|
||||
if (menu->GetEventHandler()->ProcessEvent(event)) return;
|
||||
if (menu->GetEventHandler()->ProcessEvent(event)) return;
|
||||
|
||||
wxWindow *win = menu->GetInvokingWindow();
|
||||
if (win) win->GetEventHandler()->ProcessEvent( event );
|
||||
wxWindow *win = menu->GetInvokingWindow();
|
||||
if (win) win->GetEventHandler()->ProcessEvent( event );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -179,28 +189,29 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
|
||||
|
||||
static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu )
|
||||
{
|
||||
int id = menu->FindMenuIdByMenuItem(widget);
|
||||
int id = menu->FindMenuIdByMenuItem(widget);
|
||||
|
||||
wxASSERT( id != -1 ); // should find it!
|
||||
wxASSERT( id != -1 ); // should find it!
|
||||
|
||||
if (!menu->IsEnabled(id)) return;
|
||||
if (!menu->IsEnabled(id)) return;
|
||||
|
||||
wxCommandEvent event( wxEVT_MENU_HIGHLIGHT, id );
|
||||
event.SetEventObject( menu );
|
||||
event.SetInt(id );
|
||||
wxCommandEvent event( wxEVT_MENU_HIGHLIGHT, id );
|
||||
event.SetEventObject( menu );
|
||||
event.SetInt(id );
|
||||
|
||||
/* wxMSW doesn't call callback here either
|
||||
if (menu->m_callback)
|
||||
{
|
||||
(void) (*(menu->m_callback)) (*menu, event);
|
||||
return;
|
||||
}
|
||||
/* wxMSW doesn't call callback here either
|
||||
|
||||
if (menu->m_callback)
|
||||
{
|
||||
(void) (*(menu->m_callback)) (*menu, event);
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
if (menu->GetEventHandler()->ProcessEvent(event)) return;
|
||||
if (menu->GetEventHandler()->ProcessEvent(event)) return;
|
||||
|
||||
wxWindow *win = menu->GetInvokingWindow();
|
||||
if (win) win->GetEventHandler()->ProcessEvent( event );
|
||||
wxWindow *win = menu->GetInvokingWindow();
|
||||
if (win) win->GetEventHandler()->ProcessEvent( event );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -211,276 +222,305 @@ IMPLEMENT_DYNAMIC_CLASS(wxMenuItem,wxObject)
|
||||
|
||||
wxMenuItem::wxMenuItem()
|
||||
{
|
||||
m_id = ID_SEPARATOR;
|
||||
m_isCheckMenu = FALSE;
|
||||
m_isChecked = FALSE;
|
||||
m_isEnabled = TRUE;
|
||||
m_subMenu = (wxMenu *) NULL;
|
||||
m_menuItem = (GtkWidget *) NULL;
|
||||
m_id = ID_SEPARATOR;
|
||||
m_isCheckMenu = FALSE;
|
||||
m_isChecked = FALSE;
|
||||
m_isEnabled = TRUE;
|
||||
m_subMenu = (wxMenu *) NULL;
|
||||
m_menuItem = (GtkWidget *) NULL;
|
||||
}
|
||||
|
||||
// it's valid for this function to be called even if m_menuItem == NULL
|
||||
void wxMenuItem::SetName(const wxString& str)
|
||||
/* it's valid for this function to be called even if m_menuItem == NULL */
|
||||
void wxMenuItem::SetName( const wxString& str )
|
||||
{
|
||||
m_text = "";
|
||||
for ( const char *pc = str; *pc != '\0'; pc++ )
|
||||
{
|
||||
if ( *pc == '&' )
|
||||
pc++; // skip it
|
||||
m_text = "";
|
||||
for ( const char *pc = str; *pc != '\0'; pc++ )
|
||||
{
|
||||
if (*pc == '&') pc++; /* skip it */
|
||||
m_text << *pc;
|
||||
}
|
||||
|
||||
m_text << *pc;
|
||||
}
|
||||
|
||||
if ( m_menuItem )
|
||||
{
|
||||
GtkLabel *label = GTK_LABEL( GTK_BIN(m_menuItem)->child );
|
||||
|
||||
gtk_label_set( label, m_text.c_str());
|
||||
}
|
||||
if (m_menuItem)
|
||||
{
|
||||
GtkLabel *label = GTK_LABEL( GTK_BIN(m_menuItem)->child );
|
||||
gtk_label_set( label, m_text.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
void wxMenuItem::Check( bool check )
|
||||
{
|
||||
wxCHECK_RET( m_menuItem, "invalid menu item" );
|
||||
wxCHECK_RET( m_menuItem, "invalid menu item" );
|
||||
|
||||
wxCHECK_RET( IsCheckable(), "Can't check uncheckable item!" )
|
||||
wxCHECK_RET( IsCheckable(), "Can't check uncheckable item!" )
|
||||
|
||||
m_isChecked = check;
|
||||
gtk_check_menu_item_set_state( (GtkCheckMenuItem*)m_menuItem, (gint)check );
|
||||
m_isChecked = check;
|
||||
gtk_check_menu_item_set_state( (GtkCheckMenuItem*)m_menuItem, (gint)check );
|
||||
}
|
||||
|
||||
void wxMenuItem::Enable( bool enable )
|
||||
{
|
||||
wxCHECK_RET( m_menuItem, "invalid menu item" );
|
||||
wxCHECK_RET( m_menuItem, "invalid menu item" );
|
||||
|
||||
gtk_widget_set_sensitive( m_menuItem, enable );
|
||||
m_isEnabled = enable;
|
||||
gtk_widget_set_sensitive( m_menuItem, enable );
|
||||
m_isEnabled = enable;
|
||||
}
|
||||
|
||||
bool wxMenuItem::IsChecked() const
|
||||
{
|
||||
wxCHECK_MSG( m_menuItem, FALSE, "invalid menu item" );
|
||||
wxCHECK_MSG( m_menuItem, FALSE, "invalid menu item" );
|
||||
|
||||
wxCHECK( IsCheckable(), FALSE ); // can't get state of uncheckable item!
|
||||
wxCHECK( IsCheckable(), FALSE ); // can't get state of uncheckable item!
|
||||
|
||||
bool bIsChecked = ((GtkCheckMenuItem*)m_menuItem)->active != 0;
|
||||
bool bIsChecked = ((GtkCheckMenuItem*)m_menuItem)->active != 0;
|
||||
|
||||
wxASSERT( bIsChecked == m_isChecked ); // consistency check
|
||||
wxASSERT( bIsChecked == m_isChecked ); // consistency check
|
||||
|
||||
return bIsChecked;
|
||||
return bIsChecked;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxMenuItem
|
||||
// wxMenu
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler)
|
||||
|
||||
wxMenu::wxMenu( const wxString& title, const wxFunction func )
|
||||
{
|
||||
m_title = title;
|
||||
m_items.DeleteContents( TRUE );
|
||||
m_invokingWindow = (wxWindow *) NULL;
|
||||
m_menu = gtk_menu_new(); // Do not show!
|
||||
m_title = title;
|
||||
m_items.DeleteContents( TRUE );
|
||||
m_invokingWindow = (wxWindow *) NULL;
|
||||
m_menu = gtk_menu_new(); // Do not show!
|
||||
|
||||
m_callback = func;
|
||||
m_eventHandler = this;
|
||||
m_clientData = (void*) NULL;
|
||||
m_callback = func;
|
||||
m_eventHandler = this;
|
||||
m_clientData = (void*) NULL;
|
||||
|
||||
if (m_title.IsNull()) m_title = "";
|
||||
if (m_title != "")
|
||||
{
|
||||
Append(-2, m_title);
|
||||
AppendSeparator();
|
||||
}
|
||||
if (m_title.IsNull()) m_title = "";
|
||||
if (m_title != "")
|
||||
{
|
||||
Append(-2, m_title);
|
||||
AppendSeparator();
|
||||
}
|
||||
}
|
||||
|
||||
void wxMenu::SetTitle( const wxString& title )
|
||||
{
|
||||
// Waiting for something better.
|
||||
m_title = title;
|
||||
/* Waiting for something better. */
|
||||
m_title = title;
|
||||
}
|
||||
|
||||
const wxString wxMenu::GetTitle() const
|
||||
{
|
||||
return m_title;
|
||||
return m_title;
|
||||
}
|
||||
|
||||
void wxMenu::AppendSeparator()
|
||||
{
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(ID_SEPARATOR);
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(ID_SEPARATOR);
|
||||
|
||||
GtkWidget *menuItem = gtk_menu_item_new();
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
mitem->SetMenuItem(menuItem);
|
||||
m_items.Append( mitem );
|
||||
GtkWidget *menuItem = gtk_menu_item_new();
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
mitem->SetMenuItem(menuItem);
|
||||
m_items.Append( mitem );
|
||||
}
|
||||
|
||||
void wxMenu::Append( int id, const wxString &item, const wxString &helpStr, bool checkable )
|
||||
{
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(id);
|
||||
mitem->SetText(item);
|
||||
mitem->SetHelp(helpStr);
|
||||
mitem->SetCheckable(checkable);
|
||||
const char *text = mitem->GetText();
|
||||
GtkWidget *menuItem = checkable ? gtk_check_menu_item_new_with_label(text)
|
||||
: gtk_menu_item_new_with_label(text);
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(id);
|
||||
mitem->SetText(item);
|
||||
mitem->SetHelp(helpStr);
|
||||
mitem->SetCheckable(checkable);
|
||||
const char *text = mitem->GetText();
|
||||
GtkWidget *menuItem = checkable ? gtk_check_menu_item_new_with_label(text)
|
||||
: gtk_menu_item_new_with_label(text);
|
||||
|
||||
mitem->SetMenuItem(menuItem);
|
||||
mitem->SetMenuItem(menuItem);
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(menuItem), "activate",
|
||||
GTK_SIGNAL_FUNC(gtk_menu_clicked_callback),
|
||||
(gpointer*)this );
|
||||
gtk_signal_connect( GTK_OBJECT(menuItem), "activate",
|
||||
GTK_SIGNAL_FUNC(gtk_menu_clicked_callback),
|
||||
(gpointer*)this );
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(menuItem), "select",
|
||||
GTK_SIGNAL_FUNC(gtk_menu_hilight_callback),
|
||||
(gpointer*)this );
|
||||
gtk_signal_connect( GTK_OBJECT(menuItem), "select",
|
||||
GTK_SIGNAL_FUNC(gtk_menu_hilight_callback),
|
||||
(gpointer*)this );
|
||||
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
m_items.Append( mitem );
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
m_items.Append( mitem );
|
||||
}
|
||||
|
||||
void wxMenu::Append( int id, const wxString &text, wxMenu *subMenu, const wxString &helpStr )
|
||||
{
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(id);
|
||||
mitem->SetText(text);
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(id);
|
||||
mitem->SetText(text);
|
||||
|
||||
GtkWidget *menuItem = gtk_menu_item_new_with_label(mitem->GetText());
|
||||
mitem->SetHelp(helpStr);
|
||||
mitem->SetMenuItem(menuItem);
|
||||
mitem->SetSubMenu(subMenu);
|
||||
GtkWidget *menuItem = gtk_menu_item_new_with_label(mitem->GetText());
|
||||
mitem->SetHelp(helpStr);
|
||||
mitem->SetMenuItem(menuItem);
|
||||
mitem->SetSubMenu(subMenu);
|
||||
|
||||
gtk_menu_item_set_submenu( GTK_MENU_ITEM(menuItem), subMenu->m_menu );
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
m_items.Append( mitem );
|
||||
gtk_menu_item_set_submenu( GTK_MENU_ITEM(menuItem), subMenu->m_menu );
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
m_items.Append( mitem );
|
||||
}
|
||||
|
||||
int wxMenu::FindItem( const wxString itemString ) const
|
||||
{
|
||||
wxString s( itemString );
|
||||
wxString s( itemString );
|
||||
|
||||
int pos;
|
||||
do {
|
||||
pos = s.First( '&' );
|
||||
if (pos != -1) s.Remove( pos, 1 );
|
||||
} while (pos != -1);
|
||||
int pos;
|
||||
do
|
||||
{
|
||||
pos = s.First( '&' );
|
||||
if (pos != -1) s.Remove( pos, 1 );
|
||||
} while (pos != -1);
|
||||
|
||||
wxNode *node = m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->GetText() == s)
|
||||
return item->GetId();
|
||||
node = node->Next();
|
||||
}
|
||||
wxNode *node = m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->GetText() == s)
|
||||
{
|
||||
return item->GetId();
|
||||
}
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
return -1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
void wxMenu::Enable( int id, bool enable )
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if ( item )
|
||||
item->Enable(enable);
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
item->Enable(enable);
|
||||
}
|
||||
}
|
||||
|
||||
bool wxMenu::IsEnabled( int id ) const
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if ( item )
|
||||
return item->IsEnabled();
|
||||
else
|
||||
return FALSE;
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
return item->IsEnabled();
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void wxMenu::Check( int id, bool enable )
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if ( item )
|
||||
item->Check(enable);
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
item->Check(enable);
|
||||
}
|
||||
}
|
||||
|
||||
bool wxMenu::IsChecked( int id ) const
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if ( item )
|
||||
return item->IsChecked();
|
||||
else
|
||||
return FALSE;
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
return item->IsChecked();
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void wxMenu::SetLabel( int id, const wxString &label )
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
item->SetText(label);
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
item->SetText(label);
|
||||
}
|
||||
}
|
||||
|
||||
wxString wxMenu::GetLabel( int id ) const
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item) return item->GetText();
|
||||
return "";
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
return item->GetText();
|
||||
}
|
||||
else
|
||||
{
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
void wxMenu::SetHelpString( int id, const wxString& helpString )
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item) item->SetHelp( helpString );
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item) item->SetHelp( helpString );
|
||||
}
|
||||
|
||||
wxString wxMenu::GetHelpString( int id ) const
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item) return item->GetHelp();
|
||||
return "";
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
return item->GetHelp();
|
||||
}
|
||||
else
|
||||
{
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
int wxMenu::FindMenuIdByMenuItem( GtkWidget *menuItem ) const
|
||||
{
|
||||
wxNode *node = m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->GetMenuItem() == menuItem)
|
||||
return item->GetId();
|
||||
node = node->Next();
|
||||
}
|
||||
wxNode *node = m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->GetMenuItem() == menuItem)
|
||||
return item->GetId();
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
return -1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
wxMenuItem *wxMenu::FindItem(int id) const
|
||||
{
|
||||
wxNode *node = m_items.First();
|
||||
while (node) {
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if ( item->GetId() == id )
|
||||
return item;
|
||||
node = node->Next();
|
||||
}
|
||||
wxNode *node = m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->GetId() == id)
|
||||
{
|
||||
return item;
|
||||
}
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
// Not finding anything here can be correct
|
||||
// when search the entire menu system for
|
||||
// an entry -> no error message.
|
||||
/* Not finding anything here can be correct
|
||||
* when search the entire menu system for
|
||||
* an entry -> no error message. */
|
||||
|
||||
return (wxMenuItem *) NULL;
|
||||
return (wxMenuItem *) NULL;
|
||||
}
|
||||
|
||||
void wxMenu::SetInvokingWindow( wxWindow *win )
|
||||
{
|
||||
m_invokingWindow = win;
|
||||
m_invokingWindow = win;
|
||||
}
|
||||
|
||||
wxWindow *wxMenu::GetInvokingWindow()
|
||||
{
|
||||
return m_invokingWindow;
|
||||
return m_invokingWindow;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -14,6 +14,10 @@
|
||||
#include "wx/minifram.h"
|
||||
#include "wx/dcscreen.h"
|
||||
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// "clicked"
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -17,6 +17,10 @@
|
||||
#include "wx/imaglist.h"
|
||||
#include "wx/intl.h"
|
||||
#include "wx/log.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
#include "gdk/gdkkeysyms.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -15,6 +15,8 @@
|
||||
|
||||
#include "wx/palette.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxPalette
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,8 @@
|
||||
|
||||
#include "wx/pen.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxPen
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -15,6 +15,9 @@
|
||||
#include "wx/radiobox.h"
|
||||
#include "wx/dialog.h"
|
||||
#include "wx/frame.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,8 @@
|
||||
#endif
|
||||
|
||||
#include "wx/radiobut.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
|
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "wx/region.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxRegion
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -16,6 +16,9 @@
|
||||
#include "wx/utils.h"
|
||||
#include <math.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -15,6 +15,9 @@
|
||||
#include "wx/settings.h"
|
||||
#include "wx/debug.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
/*
|
||||
#define wxSYS_COLOUR_SCROLLBAR 0
|
||||
#define wxSYS_COLOUR_BACKGROUND 1
|
||||
|
@@ -15,6 +15,9 @@
|
||||
#include "wx/utils.h"
|
||||
#include <math.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -16,6 +16,9 @@
|
||||
#include "wx/utils.h"
|
||||
#include <math.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -28,31 +31,31 @@ extern bool g_blockEventsOnDrag;
|
||||
|
||||
static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *win )
|
||||
{
|
||||
if (!win->HasVMT()) return;
|
||||
if (g_blockEventsOnDrag) return;
|
||||
if (!win->HasVMT()) return;
|
||||
if (g_blockEventsOnDrag) return;
|
||||
|
||||
float diff = win->m_adjust->value - win->m_oldPos;
|
||||
if (fabs(diff) < 0.2) return;
|
||||
float diff = win->m_adjust->value - win->m_oldPos;
|
||||
if (fabs(diff) < 0.2) return;
|
||||
|
||||
wxEventType command = wxEVT_NULL;
|
||||
wxEventType command = wxEVT_NULL;
|
||||
|
||||
float line_step = win->m_adjust->step_increment;
|
||||
float page_step = win->m_adjust->page_increment;
|
||||
float line_step = win->m_adjust->step_increment;
|
||||
float page_step = win->m_adjust->page_increment;
|
||||
|
||||
if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLL_LINEDOWN;
|
||||
else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLL_LINEUP;
|
||||
else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLL_PAGEDOWN;
|
||||
else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLL_PAGEUP;
|
||||
else command = wxEVT_SCROLL_THUMBTRACK;
|
||||
if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLL_LINEDOWN;
|
||||
else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLL_LINEUP;
|
||||
else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLL_PAGEDOWN;
|
||||
else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLL_PAGEUP;
|
||||
else command = wxEVT_SCROLL_THUMBTRACK;
|
||||
|
||||
int value = (int)(win->m_adjust->value+0.5);
|
||||
int value = (int)(win->m_adjust->value+0.5);
|
||||
|
||||
wxSpinEvent event( command, win->GetId());
|
||||
event.SetPosition( value );
|
||||
event.SetOrientation( wxVERTICAL );
|
||||
event.SetEventObject( win );
|
||||
wxSpinEvent event( command, win->GetId());
|
||||
event.SetPosition( value );
|
||||
event.SetOrientation( wxVERTICAL );
|
||||
event.SetEventObject( win );
|
||||
|
||||
win->ProcessEvent( event );
|
||||
win->ProcessEvent( event );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -72,38 +75,40 @@ wxSpinButton::wxSpinButton()
|
||||
bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size,
|
||||
long style, const wxString& name)
|
||||
{
|
||||
m_needParent = TRUE;
|
||||
m_needParent = TRUE;
|
||||
|
||||
wxSize new_size = size;
|
||||
new_size.x = 16;
|
||||
if (new_size.y == -1) new_size.y = 30;
|
||||
wxSize new_size = size;
|
||||
new_size.x = 16;
|
||||
if (new_size.y == -1) new_size.y = 30;
|
||||
|
||||
PreCreation( parent, id, pos, new_size, style, name );
|
||||
PreCreation( parent, id, pos, new_size, style, name );
|
||||
|
||||
// SetValidator( validator );
|
||||
|
||||
m_oldPos = 0.0;
|
||||
m_oldPos = 0.0;
|
||||
|
||||
m_adjust = (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 100.0, 1.0, 5.0, 0.0);
|
||||
m_adjust = (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 100.0, 1.0, 5.0, 0.0);
|
||||
|
||||
m_widget = gtk_spin_button_new( m_adjust, 0, 0 );
|
||||
m_widget = gtk_spin_button_new( m_adjust, 0, 0 );
|
||||
|
||||
gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget), (m_windowStyle & wxSP_WRAP) );
|
||||
gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget), (m_windowStyle & wxSP_WRAP) );
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (m_adjust), "value_changed",
|
||||
(GtkSignalFunc) gtk_spinbutt_callback, (gpointer) this );
|
||||
gtk_signal_connect( GTK_OBJECT (m_adjust),
|
||||
"value_changed",
|
||||
(GtkSignalFunc) gtk_spinbutt_callback,
|
||||
(gpointer) this );
|
||||
|
||||
m_parent->AddChild( this );
|
||||
m_parent->AddChild( this );
|
||||
|
||||
(m_parent->m_insertCallback)( m_parent, this );
|
||||
(m_parent->m_insertCallback)( m_parent, this );
|
||||
|
||||
PostCreation();
|
||||
PostCreation();
|
||||
|
||||
SetBackgroundColour( parent->GetBackgroundColour() );
|
||||
SetBackgroundColour( parent->GetBackgroundColour() );
|
||||
|
||||
Show( TRUE );
|
||||
Show( TRUE );
|
||||
|
||||
return TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
wxSpinButton::~wxSpinButton()
|
||||
@@ -112,71 +117,74 @@ wxSpinButton::~wxSpinButton()
|
||||
|
||||
int wxSpinButton::GetMin() const
|
||||
{
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
|
||||
return (int)(m_adjust->lower+0.5);
|
||||
return (int)(m_adjust->lower+0.5);
|
||||
}
|
||||
|
||||
int wxSpinButton::GetMax() const
|
||||
{
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
|
||||
return (int)(m_adjust->upper+0.5);
|
||||
return (int)(m_adjust->upper+0.5);
|
||||
}
|
||||
|
||||
int wxSpinButton::GetValue() const
|
||||
{
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
|
||||
return (int)(m_adjust->value+0.5);
|
||||
return (int)(m_adjust->value+0.5);
|
||||
}
|
||||
|
||||
void wxSpinButton::SetValue( int value )
|
||||
{
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
|
||||
float fpos = (float)value;
|
||||
m_oldPos = fpos;
|
||||
if (fabs(fpos-m_adjust->value) < 0.2) return;
|
||||
m_adjust->value = fpos;
|
||||
float fpos = (float)value;
|
||||
m_oldPos = fpos;
|
||||
if (fabs(fpos-m_adjust->value) < 0.2) return;
|
||||
|
||||
m_adjust->value = fpos;
|
||||
|
||||
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" );
|
||||
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" );
|
||||
}
|
||||
|
||||
void wxSpinButton::SetRange(int minVal, int maxVal)
|
||||
{
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
|
||||
float fmin = (float)minVal;
|
||||
float fmax = (float)maxVal;
|
||||
float fmin = (float)minVal;
|
||||
float fmax = (float)maxVal;
|
||||
|
||||
if ((fabs(fmin-m_adjust->lower) < 0.2) &&
|
||||
(fabs(fmax-m_adjust->upper) < 0.2))
|
||||
return;
|
||||
if ((fabs(fmin-m_adjust->lower) < 0.2) &&
|
||||
(fabs(fmax-m_adjust->upper) < 0.2))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_adjust->lower = fmin;
|
||||
m_adjust->upper = fmax;
|
||||
m_adjust->lower = fmin;
|
||||
m_adjust->upper = fmax;
|
||||
|
||||
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" );
|
||||
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" );
|
||||
}
|
||||
|
||||
void wxSpinButton::OnSize( wxSizeEvent &WXUNUSED(event) )
|
||||
{
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
|
||||
m_width = 16;
|
||||
gtk_widget_set_usize( m_widget, m_width, m_height );
|
||||
m_width = 16;
|
||||
gtk_widget_set_usize( m_widget, m_width, m_height );
|
||||
}
|
||||
|
||||
bool wxSpinButton::IsOwnGtkWindow( GdkWindow *window )
|
||||
{
|
||||
return GTK_SPIN_BUTTON(m_widget)->panel == window;
|
||||
return GTK_SPIN_BUTTON(m_widget)->panel == window;
|
||||
}
|
||||
|
||||
void wxSpinButton::ApplyWidgetStyle()
|
||||
{
|
||||
SetWidgetStyle();
|
||||
gtk_widget_set_style( m_widget, m_widgetStyle );
|
||||
SetWidgetStyle();
|
||||
gtk_widget_set_style( m_widget, m_widgetStyle );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/statbmp.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxStaticBitmap
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/statbox.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxStaticBox
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "wx/stattext.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxStaticText
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,10 @@
|
||||
|
||||
#include "wx/toolbar.h"
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -99,6 +103,8 @@ wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id,
|
||||
|
||||
wxToolBar::~wxToolBar()
|
||||
{
|
||||
delete m_fg;
|
||||
delete m_bg;
|
||||
}
|
||||
|
||||
bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
|
||||
@@ -121,18 +127,20 @@ bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
|
||||
m_widget = GTK_WIDGET(m_toolbar);
|
||||
|
||||
gtk_toolbar_set_tooltips( GTK_TOOLBAR(m_toolbar), TRUE );
|
||||
|
||||
m_fg = new GdkColor;
|
||||
m_fg->red = 0;
|
||||
m_fg->green = 0;
|
||||
m_fg->blue = 0;
|
||||
gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), m_fg );
|
||||
|
||||
m_fg.red = 0;
|
||||
m_fg.green = 0;
|
||||
m_fg.blue = 0;
|
||||
gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), &m_fg );
|
||||
m_bg = new GdkColor;
|
||||
m_bg->red = 65535;
|
||||
m_bg->green = 65535;
|
||||
m_bg->blue = 50000;
|
||||
gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), m_bg );
|
||||
|
||||
m_bg.red = 65535;
|
||||
m_bg.green = 65535;
|
||||
m_bg.blue = 50000;
|
||||
gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), &m_bg );
|
||||
|
||||
gtk_tooltips_set_colors( GTK_TOOLBAR(m_toolbar)->tooltips, &m_bg, &m_fg );
|
||||
gtk_tooltips_set_colors( GTK_TOOLBAR(m_toolbar)->tooltips, m_bg, m_fg );
|
||||
|
||||
m_xMargin = 0;
|
||||
m_yMargin = 0;
|
||||
|
@@ -20,6 +20,8 @@
|
||||
#include <sys/stat.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "gdk/gdkkeysyms.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -24,6 +24,9 @@
|
||||
#include "wx/utils.h"
|
||||
#include "wx/log.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
enum thread_state
|
||||
{
|
||||
STATE_IDLE = 0,
|
||||
|
@@ -23,7 +23,11 @@
|
||||
#include "wx/utils.h"
|
||||
#include "wx/log.h"
|
||||
|
||||
enum thread_state {
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
enum thread_state
|
||||
{
|
||||
STATE_IDLE = 0,
|
||||
STATE_RUNNING,
|
||||
STATE_CANCELED,
|
||||
|
@@ -14,6 +14,8 @@
|
||||
|
||||
#include "wx/timer.h"
|
||||
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxTimer
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -22,46 +24,49 @@ IMPLEMENT_ABSTRACT_CLASS(wxTimer,wxObject)
|
||||
|
||||
gint timeout_callback( gpointer data )
|
||||
{
|
||||
wxTimer *timer = (wxTimer*)data;
|
||||
timer->Notify();
|
||||
wxTimer *timer = (wxTimer*)data;
|
||||
timer->Notify();
|
||||
|
||||
if ( timer->OneShot() )
|
||||
timer->Stop();
|
||||
if (timer->OneShot())
|
||||
{
|
||||
timer->Stop();
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
wxTimer::wxTimer()
|
||||
{
|
||||
m_tag = -1;
|
||||
m_time = 1000;
|
||||
m_oneShot = FALSE;
|
||||
m_tag = -1;
|
||||
m_time = 1000;
|
||||
m_oneShot = FALSE;
|
||||
}
|
||||
|
||||
wxTimer::~wxTimer()
|
||||
{
|
||||
Stop();
|
||||
Stop();
|
||||
}
|
||||
|
||||
bool wxTimer::Start( int millisecs, bool oneShot )
|
||||
{
|
||||
if ( millisecs != -1 )
|
||||
m_time = millisecs;
|
||||
if (millisecs != -1)
|
||||
{
|
||||
m_time = millisecs;
|
||||
}
|
||||
|
||||
m_oneShot = oneShot;
|
||||
m_oneShot = oneShot;
|
||||
|
||||
m_tag = gtk_timeout_add( millisecs, timeout_callback, this );
|
||||
m_tag = gtk_timeout_add( millisecs, timeout_callback, this );
|
||||
|
||||
return TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void wxTimer::Stop()
|
||||
{
|
||||
if ( m_tag != -1 )
|
||||
{
|
||||
gtk_timeout_remove( m_tag );
|
||||
|
||||
m_tag = -1;
|
||||
}
|
||||
if (m_tag != -1)
|
||||
{
|
||||
gtk_timeout_remove( m_tag );
|
||||
m_tag = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -34,7 +34,10 @@
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/Xresource.h>
|
||||
|
||||
#include "gdk/gdkx.h" // GDK_DISPLAY
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "gdk/gdkx.h"
|
||||
|
||||
#ifdef __SVR4__
|
||||
#include <sys/systeminfo.h>
|
||||
|
@@ -28,11 +28,15 @@
|
||||
#include "wx/intl.h"
|
||||
#include "wx/settings.h"
|
||||
#include "wx/log.h"
|
||||
#include "gdk/gdkprivate.h"
|
||||
#include "gdk/gdkkeysyms.h"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "gdk/gdkprivate.h"
|
||||
#include "gdk/gdkkeysyms.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// documentation on internals
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -26,6 +26,11 @@
|
||||
|
||||
#include "unistd.h"
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// global data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,9 +14,11 @@
|
||||
#include "wx/bitmap.h"
|
||||
#include "wx/icon.h"
|
||||
#include "wx/filefn.h"
|
||||
#include "wx/image.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gdk/gdkprivate.h"
|
||||
#include "gdk/gdkx.h"
|
||||
#include "wx/image.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxMask
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/bmpbuttn.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// classes
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,8 @@
|
||||
|
||||
#include "wx/brush.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxBrush
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/button.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// classes
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "wx/checkbox.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/checklst.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxCheckListBox
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "wx/choice.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,10 @@
|
||||
|
||||
#include "wx/clipbrd.h"
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,7 @@
|
||||
|
||||
#include "wx/gdicmn.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gdk/gdkprivate.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
#include "wx/combobox.h"
|
||||
#include <wx/intl.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,8 @@
|
||||
|
||||
#include "wx/cursor.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxCursor
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -21,8 +21,7 @@
|
||||
|
||||
#define _MAXPATHLEN 500
|
||||
|
||||
// Used for X resources
|
||||
|
||||
/* Used for X resources */
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/Xresource.h>
|
||||
@@ -30,50 +29,49 @@
|
||||
wxResourceCache *wxTheResourceCache = (wxResourceCache *) NULL;
|
||||
XrmDatabase wxResourceDatabase;
|
||||
|
||||
// Useful buffer, initialized in wxCommonInit
|
||||
/* Useful buffer, initialized in wxCommonInit */
|
||||
char *wxBuffer = (char *) NULL;
|
||||
|
||||
// Windows List
|
||||
/* Windows List */
|
||||
wxList wxTopLevelWindows;
|
||||
|
||||
// List of windows pending deletion
|
||||
/* List of windows pending deletion */
|
||||
wxList wxPendingDelete;
|
||||
|
||||
// Current cursor, in order to hang on to
|
||||
// cursor handle when setting the cursor globally
|
||||
/* Current cursor, in order to hang on to
|
||||
* cursor handle when setting the cursor globally */
|
||||
wxCursor *g_globalCursor = (wxCursor *) NULL;
|
||||
|
||||
// Don't allow event propagation during drag
|
||||
/* Don't allow event propagation during drag */
|
||||
bool g_blockEventsOnDrag = FALSE;
|
||||
|
||||
// Don't allow mouse event propagation during scroll
|
||||
/* Don't allow mouse event propagation during scroll */
|
||||
bool g_blockEventsOnScroll = FALSE;
|
||||
|
||||
// Message Strings for Internationalization
|
||||
/* Message Strings for Internationalization */
|
||||
char **wx_msg_str = (char**)NULL;
|
||||
|
||||
// Custom OS version, as optionally placed in wx.ini/.wxrc
|
||||
// Currently this can be Win95, Windows, Win32s, WinNT.
|
||||
// For some systems, you can't tell until run-time what services you
|
||||
// have. See wxGetOsVersion, which uses this string if present.
|
||||
/* Custom OS version, as optionally placed in wx.ini/.wxrc
|
||||
* Currently this can be Win95, Windows, Win32s, WinNT.
|
||||
* For some systems, you can't tell until run-time what services you
|
||||
* have. See wxGetOsVersion, which uses this string if present. */
|
||||
char *wxOsVersion = (char *) NULL;
|
||||
|
||||
// For printing several pages
|
||||
/* For printing several pages */
|
||||
int wxPageNumber;
|
||||
wxPrintPaperDatabase* wxThePrintPaperDatabase = (wxPrintPaperDatabase *) NULL;
|
||||
|
||||
// GDI Object Lists
|
||||
/* GDI Object Lists */
|
||||
wxBrushList *wxTheBrushList = (wxBrushList *) NULL;
|
||||
wxPenList *wxThePenList = (wxPenList *) NULL;
|
||||
wxFontList *wxTheFontList = (wxFontList *) NULL;
|
||||
wxColourDatabase *wxTheColourDatabase = (wxColourDatabase *) NULL;
|
||||
wxBitmapList *wxTheBitmapList = (wxBitmapList *) NULL;
|
||||
wxBitmapList *wxTheBitmapList = (wxBitmapList *) NULL;
|
||||
|
||||
|
||||
// X only font names
|
||||
/* X only font names */
|
||||
wxFontNameDirectory *wxTheFontNameDirectory;
|
||||
|
||||
// Stock objects
|
||||
/* Stock objects */
|
||||
wxFont *wxNORMAL_FONT;
|
||||
wxFont *wxSMALL_FONT;
|
||||
wxFont *wxITALIC_FONT;
|
||||
@@ -103,7 +101,7 @@ wxBrush *wxLIGHT_GREY_BRUSH;
|
||||
|
||||
wxColour *wxBLACK;
|
||||
wxColour *wxWHITE;
|
||||
wxColour *wxGREY; // Robert Roebling
|
||||
wxColour *wxGREY;
|
||||
wxColour *wxRED;
|
||||
wxColour *wxBLUE;
|
||||
wxColour *wxGREEN;
|
||||
@@ -114,7 +112,7 @@ wxCursor *wxSTANDARD_CURSOR = (wxCursor *) NULL;
|
||||
wxCursor *wxHOURGLASS_CURSOR = (wxCursor *) NULL;
|
||||
wxCursor *wxCROSS_CURSOR = (wxCursor *) NULL;
|
||||
|
||||
// 'Null' objects
|
||||
/* 'Null' objects */
|
||||
wxAcceleratorTable wxNullAcceleratorTable;
|
||||
wxBitmap wxNullBitmap;
|
||||
wxIcon wxNullIcon;
|
||||
@@ -126,7 +124,7 @@ wxColour wxNullColour;
|
||||
wxPalette wxNullPalette;
|
||||
wxRegion wxNullRegion;
|
||||
|
||||
// Default window names
|
||||
/* Default window names */
|
||||
const char *wxButtonNameStr = "button";
|
||||
const char *wxCanvasNameStr = "canvas";
|
||||
const char *wxCheckBoxNameStr = "check";
|
||||
@@ -162,610 +160,10 @@ const char *wxFileSelectorDefaultWildcardStr = "*.*";
|
||||
const char *wxInternalErrorStr = "wxWindows Internal Error";
|
||||
const char *wxFatalErrorStr = "wxWindows Fatal Error";
|
||||
|
||||
// See wx/utils.h
|
||||
/* See wx/utils.h */
|
||||
const char *wxFloatToStringStr = "%.2f";
|
||||
const char *wxDoubleToStringStr = "%.2f";
|
||||
|
||||
#ifdef wx_msw
|
||||
const char *wxUserResourceStr = "TEXT";
|
||||
#endif
|
||||
|
||||
|
||||
#if wxUSE_SHARED_LIBRARY
|
||||
/*
|
||||
* For wxWindows to be made into a dynamic library (e.g. Sun),
|
||||
* all IMPLEMENT_... macros must be in one place.
|
||||
* But normally, the definitions are in the appropriate places.
|
||||
*/
|
||||
|
||||
// Hand-coded IMPLEMENT... macro for wxObject (define static data)
|
||||
wxClassInfo wxObject::classwxObject((char *) "wxObject", (char *) NULL, (char *) NULL, (int ) sizeof(wxObject), (wxObjectConstructorFn) NULL);
|
||||
wxClassInfo *wxClassInfo::first = (wxClassInfo *) NULL;
|
||||
wxHashTable wxClassInfo::classTable(wxKEY_STRING);
|
||||
|
||||
#include "wx/button.h"
|
||||
#include "wx/bmpbuttn.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton)
|
||||
|
||||
#include "wx/checkbox.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox)
|
||||
|
||||
#include "wx/choice.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl)
|
||||
|
||||
#if wxUSE_CLIPBOARD
|
||||
#include "wx/clipbrd.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxClipboardClient, wxObject)
|
||||
#endif
|
||||
|
||||
#if wxUSE_COMBOBOX
|
||||
#include "wx/combobox.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl)
|
||||
#endif
|
||||
|
||||
#include "wx/dc.h"
|
||||
#include "wx/dcmemory.h"
|
||||
#include "wx/dcclient.h"
|
||||
#include "wx/dcscreen.h"
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxDC)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxDC)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC)
|
||||
|
||||
#if defined(wx_msw)
|
||||
#include "wx/dcprint.h"
|
||||
IMPLEMENT_CLASS(wxPrinterDC, wxDC)
|
||||
#endif
|
||||
|
||||
#include "wx/dialog.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxWindow)
|
||||
|
||||
#include "wx/frame.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
|
||||
|
||||
#include "wx/mdi.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxWindow)
|
||||
|
||||
#include "wx/cmndata.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxColourData, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFontData, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrintData, wxObject)
|
||||
|
||||
#include "wx/colordlg.h"
|
||||
#include "wx/fontdlg.h"
|
||||
|
||||
#if !defined(wx_msw) || wxUSE_GENERIC_DIALOGS_IN_MSW
|
||||
#include "wx/generic/colordlg.h"
|
||||
#include "wx/generic/fontdlg.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxGenericColourDialog, wxDialog)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxGenericFontDialog, wxDialog)
|
||||
#endif
|
||||
|
||||
// X defines wxColourDialog to be wxGenericColourDialog
|
||||
#ifndef wx_x
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog)
|
||||
#endif
|
||||
|
||||
#include "wx/gdicmn.h"
|
||||
#include "wx/pen.h"
|
||||
#include "wx/brush.h"
|
||||
#include "wx/font.h"
|
||||
#include "wx/palette.h"
|
||||
#include "wx/icon.h"
|
||||
#include "wx/cursor.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject)
|
||||
IMPLEMENT_CLASS(wxColourDatabase, wxList)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFontList, wxList)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList)
|
||||
|
||||
/*
|
||||
#if (!USE_TYPEDEFS)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIntPoint, wxObject)
|
||||
#endif
|
||||
*/
|
||||
|
||||
#if defined(wx_x) || (defined(wx_msw) && wxUSE_PORTABLE_FONTS_IN_MSW)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFontNameDirectory, wxObject)
|
||||
#endif
|
||||
|
||||
#include "wx/hash.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxHashTable, wxObject)
|
||||
|
||||
#include "wx/help.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxHelpInstance, wxClient)
|
||||
IMPLEMENT_CLASS(wxHelpConnection, wxConnection)
|
||||
|
||||
#include "wx/list.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxNode, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxList, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxStringList, wxList)
|
||||
|
||||
#if wxUSE_PRINTING_ARCHITECTURE
|
||||
#include "wx/print.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrintDialog, wxDialog)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrinterBase, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPostScriptPrinter, wxPrinterBase)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxWindowsPrinter, wxPrinterBase)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxPrintout, wxObject)
|
||||
IMPLEMENT_CLASS(wxPreviewCanvas, wxWindow)
|
||||
IMPLEMENT_CLASS(wxPreviewControlBar, wxWindow)
|
||||
IMPLEMENT_CLASS(wxPreviewFrame, wxFrame)
|
||||
IMPLEMENT_CLASS(wxPrintPreviewBase, wxObject)
|
||||
IMPLEMENT_CLASS(wxPostScriptPrintPreview, wxPrintPreviewBase)
|
||||
IMPLEMENT_CLASS(wxWindowsPrintPreview, wxPrintPreviewBase)
|
||||
IMPLEMENT_CLASS(wxGenericPrintDialog, wxDialog)
|
||||
IMPLEMENT_CLASS(wxGenericPrintSetupDialog, wxDialog)
|
||||
#endif
|
||||
|
||||
#if wxUSE_POSTSCRIPT
|
||||
#include "wx/postscrp.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPostScriptDC, wxDC)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrintSetupData, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPageSetupData, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrintPaperType, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPrintPaperDatabase, wxList)
|
||||
#endif
|
||||
|
||||
#if wxUSE_WX_RESOURCES
|
||||
#include "wx/resource.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxItemResource, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxResourceTable, wxHashTable)
|
||||
#endif
|
||||
|
||||
#include "wx/event.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxEvtHandler, wxObject)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxEvent, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCommandEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxScrollEvent, wxCommandEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMouseEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxKeyEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxSizeEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPaintEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxEraseEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMoveEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFocusEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCloseEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMenuEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxJoystickEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDropFilesEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxActivateEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxInitDialogEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxSysColourChangedEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIdleEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxUpdateUIEvent, wxEvent)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxProcessEvent, wxEvent)
|
||||
|
||||
#include "wx/utils.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxList)
|
||||
|
||||
// IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject)
|
||||
|
||||
#include "wx/process.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxProcess, wxEvtHandler)
|
||||
|
||||
#if wxUSE_TIMEDATE
|
||||
#include "wx/date.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDate, wxObject)
|
||||
#endif
|
||||
|
||||
#if wxUSE_DOC_VIEW_ARCHITECTURE
|
||||
#include "wx/docview.h"
|
||||
//IMPLEMENT_ABSTRACT_CLASS(wxDocItem, wxObject)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxDocument, wxEvtHandler)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxView, wxEvtHandler)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxDocTemplate, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDocManager, wxEvtHandler)
|
||||
IMPLEMENT_CLASS(wxDocChildFrame, wxFrame)
|
||||
IMPLEMENT_CLASS(wxDocParentFrame, wxFrame)
|
||||
#if wxUSE_PRINTING_ARCHITECTURE
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDocPrintout, wxPrintout)
|
||||
#endif
|
||||
IMPLEMENT_CLASS(wxCommand, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCommandProcessor, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFileHistory, wxObject)
|
||||
#endif
|
||||
|
||||
#if wxUSE_CONSTRAINTS
|
||||
#include "wx/layout.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIndividualLayoutConstraint, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxLayoutConstraints, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxSizer, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxRowColSizer, wxSizer)
|
||||
#endif
|
||||
|
||||
#if wxUSE_TOOLBAR
|
||||
#include "wx/tbarbase.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxToolBarBase, wxControl)
|
||||
|
||||
#include "wx/tbarsmpl.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxToolBarSimple, wxToolBarBase)
|
||||
|
||||
#ifdef wx_msw
|
||||
#include "wx/tbarmsw.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxToolBarMSW, wxToolBarBase)
|
||||
|
||||
#include "wx/tbar95.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxToolBar95, wxToolBarBase)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#include "wx/sckaddr.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIPV4address, wxSockAddress)
|
||||
#ifdef ENABLE_IPV6
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIPV6address, wxSockAddress)
|
||||
#endif
|
||||
#ifndef __UNIX__
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxUNIXaddress, wxSockAddress)
|
||||
#endif
|
||||
|
||||
#include "wx/socket.h"
|
||||
|
||||
IMPLEMENT_CLASS(wxSocketBase, wxEvtHandler)
|
||||
IMPLEMENT_CLASS(wxSocketClient, wxSocketBase)
|
||||
IMPLEMENT_CLASS(wxSocketServer, wxSocketBase)
|
||||
IMPLEMENT_CLASS(wxSocketHandler, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxSocketEvent, wxEvent)
|
||||
|
||||
#include "wx/url.h"
|
||||
|
||||
IMPLEMENT_CLASS(wxProtoInfo, wxObject)
|
||||
IMPLEMENT_CLASS(wxURL, wxObject)
|
||||
|
||||
#include "wx/protocol/http.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxHTTP, wxProtocol)
|
||||
IMPLEMENT_PROTOCOL(wxHTTP, "http", "80", TRUE)
|
||||
|
||||
#include "wx/protocol/ftp.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFTP, wxProtocol)
|
||||
IMPLEMENT_PROTOCOL(wxFTP, "ftp", "21", TRUE)
|
||||
|
||||
#include "wx/protocol/sckfile.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFileProto, wxProtocol)
|
||||
IMPLEMENT_PROTOCOL(wxFileProto, "file", NULL, FALSE)
|
||||
|
||||
#include "wx/sckipc.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTCPServer, wxServerBase)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTCPClient, wxClientBase)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTCPConnection, wxConnectionBase)
|
||||
|
||||
#include "wx/statusbr.h"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxStatusBar, wxWindow)
|
||||
|
||||
BEGIN_EVENT_TABLE(wxStatusBar, wxWindow)
|
||||
EVT_PAINT(wxStatusBar::OnPaint)
|
||||
EVT_SYS_COLOUR_CHANGED(wxStatusBar::OnSysColourChanged)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#if wxUSE_TIMEDATE
|
||||
#include "wx/time.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTime, wxObject)
|
||||
#endif
|
||||
|
||||
#if !USE_GNU_WXSTRING
|
||||
#include "wx/string.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxString, wxObject)
|
||||
#endif
|
||||
|
||||
#ifdef wx_motif
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxXColormap, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxXFont, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxXCursor, wxObject)
|
||||
#endif
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxBitmap)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject)
|
||||
|
||||
// This will presumably be implemented on other platforms too
|
||||
#ifdef wx_msw
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxBMPFileHandler, wxBitmapHandler)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxXPMFileHandler, wxBitmapHandler)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxXPMDataHandler, wxBitmapHandler)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxICOFileHandler, wxBitmapHandler)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxICOResourceHandler, wxBitmapHandler)
|
||||
#endif
|
||||
|
||||
#include "wx/statbox.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl)
|
||||
|
||||
#if wxUSE_IPC
|
||||
#include "wx/dde.h"
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxDDEObject, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDDEServer, wxDDEObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDDEClient, wxDDEObject)
|
||||
IMPLEMENT_CLASS(wxDDEConnection, wxObject)
|
||||
#endif
|
||||
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow)
|
||||
|
||||
#include "wx/listbox.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl)
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler)
|
||||
|
||||
#include "wx/menu.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxWindow)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxWindow)
|
||||
|
||||
#include "wx/stattext.h"
|
||||
#include "wx/statbmp.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl)
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl)
|
||||
|
||||
#if wxUSE_METAFILE
|
||||
#include "wx/metafile.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMetaFile, wxObject)
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxMetaFileDC, wxDC)
|
||||
#endif
|
||||
|
||||
#include "wx/radiobox.h"
|
||||
#include "wx/radiobut.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl)
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl)
|
||||
// IMPLEMENT_DYNAMIC_CLASS(wxBitmapRadioButton, wxRadioButton)
|
||||
|
||||
#include "wx/scrolbar.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl)
|
||||
|
||||
#if WXWIN_COMPATIBILITY
|
||||
BEGIN_EVENT_TABLE(wxScrollBar, wxControl)
|
||||
EVT_SCROLL(wxScrollBar::OnScroll)
|
||||
END_EVENT_TABLE()
|
||||
#endif
|
||||
|
||||
#include "wx/slider.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl)
|
||||
|
||||
#if WXWIN_COMPATIBILITY
|
||||
BEGIN_EVENT_TABLE(wxSlider, wxControl)
|
||||
EVT_SCROLL(wxSlider::OnScroll)
|
||||
END_EVENT_TABLE()
|
||||
#endif
|
||||
|
||||
#include "wx/timer.h"
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject)
|
||||
|
||||
#include "wx/textctrl.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl)
|
||||
|
||||
#include "wx/window.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxEvtHandler)
|
||||
|
||||
#include "wx/scrolwin.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxScrolledWindow, wxWindow)
|
||||
|
||||
#include "wx/panel.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxPanel, wxWindow)
|
||||
|
||||
#include "wx/msgbxdlg.h"
|
||||
#include "wx/textdlg.h"
|
||||
#include "wx/filedlg.h"
|
||||
#include "wx/dirdlg.h"
|
||||
#include "wx/choicdlg.h"
|
||||
|
||||
#if !defined(wx_msw) || wxUSE_GENERIC_DIALOGS_IN_MSW
|
||||
#include "wx/generic/msgdlgg.h"
|
||||
IMPLEMENT_CLASS(wxGenericMessageDialog, wxDialog)
|
||||
#endif
|
||||
|
||||
IMPLEMENT_CLASS(wxTextEntryDialog, wxDialog)
|
||||
IMPLEMENT_CLASS(wxSingleChoiceDialog, wxDialog)
|
||||
IMPLEMENT_CLASS(wxFileDialog, wxDialog)
|
||||
IMPLEMENT_CLASS(wxDirDialog, wxDialog)
|
||||
|
||||
#ifdef wx_msw
|
||||
IMPLEMENT_CLASS(wxMessageDialog)
|
||||
#endif
|
||||
|
||||
#if wxUSE_GAUGE
|
||||
#ifdef wx_motif
|
||||
#include "../../contrib/xmgauge/gauge.h"
|
||||
#endif
|
||||
#include "wx_gauge.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl)
|
||||
#endif
|
||||
|
||||
#include "wx/grid.h"
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxGenericGrid, wxPanel)
|
||||
|
||||
///// Event tables (also must be in one, statically-linked file for shared libraries)
|
||||
|
||||
// This is the base, wxEvtHandler 'bootstrap' code which is expanded manually here
|
||||
const wxEventTable *wxEvtHandler::GetEventTable() const { return &wxEvtHandler::sm_eventTable; }
|
||||
|
||||
const wxEventTable wxEvtHandler::sm_eventTable =
|
||||
{ NULL, &wxEvtHandler::sm_eventTableEntries[0] };
|
||||
|
||||
const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0,
|
||||
#ifdef __SGI_CC__
|
||||
0L
|
||||
#else
|
||||
NULL
|
||||
#endif
|
||||
}
|
||||
};
|
||||
|
||||
BEGIN_EVENT_TABLE(wxFrame, wxWindow)
|
||||
EVT_SIZE(wxFrame::OnSize)
|
||||
EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight)
|
||||
EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)
|
||||
EVT_IDLE(wxFrame::OnIdle)
|
||||
EVT_CLOSE(wxFrame::OnCloseWindow)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxDialog, wxPanel)
|
||||
EVT_BUTTON(wxID_OK, wxDialog::OnOK)
|
||||
EVT_BUTTON(wxID_APPLY, wxDialog::OnApply)
|
||||
EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel)
|
||||
EVT_CHAR_HOOK(wxDialog::OnCharHook)
|
||||
EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged)
|
||||
EVT_CLOSE(wxDialog::OnCloseWindow)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler)
|
||||
EVT_CHAR(wxWindow::OnChar)
|
||||
EVT_SIZE(wxWindow::Size)
|
||||
EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground)
|
||||
EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged)
|
||||
EVT_INIT_DIALOG(wxWindow::OnInitDialog)
|
||||
EVT_IDLE(wxWindow::OnIdle)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxScrolledWindow, wxWindow)
|
||||
EVT_SCROLL(wxScrolledWindow::OnScroll)
|
||||
EVT_SIZE(wxScrolledWindow::OnSize)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxPanel, wxWindow)
|
||||
EVT_SYS_COLOUR_CHANGED(wxPanel::OnSysColourChanged)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
|
||||
EVT_CHAR(wxTextCtrl::OnChar)
|
||||
EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
|
||||
EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#ifdef wx_msw
|
||||
BEGIN_EVENT_TABLE(wxMDIParentWindow, wxFrame)
|
||||
EVT_SIZE(wxMDIParentWindow::OnSize)
|
||||
EVT_ACTIVATE(wxMDIParentWindow::OnActivate)
|
||||
EVT_SYS_COLOUR_CHANGED(wxMDIParentWindow::OnSysColourChanged)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow)
|
||||
EVT_SCROLL(wxMDIClientWindow::OnScroll)
|
||||
END_EVENT_TABLE()
|
||||
#endif
|
||||
|
||||
BEGIN_EVENT_TABLE(wxToolBarBase, wxControl)
|
||||
EVT_SCROLL(wxToolBarBase::OnScroll)
|
||||
EVT_SIZE(wxToolBarBase::OnSize)
|
||||
EVT_IDLE(wxToolBarBase::OnIdle)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxToolBarSimple, wxToolBarBase)
|
||||
EVT_SIZE(wxToolBarSimple::OnSize)
|
||||
EVT_PAINT(wxToolBarSimple::OnPaint)
|
||||
EVT_KILL_FOCUS(wxToolBarSimple::OnKillFocus)
|
||||
EVT_MOUSE_EVENTS(wxToolBarSimple::OnMouseEvent)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#ifdef wx_msw
|
||||
BEGIN_EVENT_TABLE(wxToolBarMSW, wxToolBarBase)
|
||||
EVT_SIZE(wxToolBarMSW::OnSize)
|
||||
EVT_PAINT(wxToolBarMSW::OnPaint)
|
||||
EVT_MOUSE_EVENTS(wxToolBarMSW::OnMouseEvent)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxToolBar95, wxToolBarBase)
|
||||
EVT_SIZE(wxToolBar95::OnSize)
|
||||
EVT_PAINT(wxToolBar95::OnPaint)
|
||||
EVT_KILL_FOCUS(wxToolBar95::OnKillFocus)
|
||||
EVT_MOUSE_EVENTS(wxToolBar95::OnMouseEvent)
|
||||
EVT_SYS_COLOUR_CHANGED(wxToolBar95::OnSysColourChanged)
|
||||
END_EVENT_TABLE()
|
||||
#endif
|
||||
|
||||
BEGIN_EVENT_TABLE(wxGenericGrid, wxPanel)
|
||||
EVT_SIZE(wxGenericGrid::OnSize)
|
||||
EVT_PAINT(wxGenericGrid::OnPaint)
|
||||
EVT_MOUSE_EVENTS(wxGenericGrid::OnMouseEvent)
|
||||
EVT_TEXT(wxGRID_TEXT_CTRL, wxGenericGrid::OnText)
|
||||
EVT_COMMAND_SCROLL(wxGRID_HSCROLL, wxGenericGrid::OnGridScroll)
|
||||
EVT_COMMAND_SCROLL(wxGRID_VSCROLL, wxGenericGrid::OnGridScroll)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxControl, wxWindow)
|
||||
EVT_ERASE_BACKGROUND(wxControl::OnEraseBackground)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#if !defined(wx_msw) || wxUSE_GENERIC_DIALOGS_IN_MSW
|
||||
BEGIN_EVENT_TABLE(wxGenericMessageDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes)
|
||||
EVT_BUTTON(wxID_NO, wxGenericMessageDialog::OnNo)
|
||||
EVT_BUTTON(wxID_CANCEL, wxGenericMessageDialog::OnCancel)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxGenericColourDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_ADD_CUSTOM, wxGenericColourDialog::OnAddCustom)
|
||||
EVT_SLIDER(wxID_RED_SLIDER, wxGenericColourDialog::OnRedSlider)
|
||||
EVT_SLIDER(wxID_GREEN_SLIDER, wxGenericColourDialog::OnGreenSlider)
|
||||
EVT_SLIDER(wxID_BLUE_SLIDER, wxGenericColourDialog::OnBlueSlider)
|
||||
EVT_PAINT(wxGenericColourDialog::OnPaint)
|
||||
EVT_MOUSE_EVENTS(wxGenericColourDialog::OnMouseEvent)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxGenericFontDialog, wxDialog)
|
||||
EVT_CHECKBOX(wxID_FONT_UNDERLINE, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_CHOICE(wxID_FONT_STYLE, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont)
|
||||
EVT_PAINT(wxGenericFontDialog::OnPaint)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxGenericPrintDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_OK, wxGenericPrintDialog::OnOK)
|
||||
EVT_BUTTON(wxPRINTID_SETUP, wxGenericPrintDialog::OnSetup)
|
||||
EVT_RADIOBOX(wxPRINTID_RANGE, wxGenericPrintDialog::OnRange)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#endif
|
||||
|
||||
BEGIN_EVENT_TABLE(wxTextEntryDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_OK, wxTextEntryDialog::OnOK)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxSingleChoiceDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_OK, wxSingleChoiceDialog::OnOK)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#include "wx/prntbase.h"
|
||||
|
||||
BEGIN_EVENT_TABLE(wxPrintAbortDialog, wxDialog)
|
||||
EVT_BUTTON(wxID_CANCEL, wxPrintAbortDialog::OnCancel)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
BEGIN_EVENT_TABLE(wxPreviewControlBar, wxWindow)
|
||||
EVT_BUTTON(wxID_PREVIEW_CLOSE, wxPreviewControlBar::OnClose)
|
||||
EVT_BUTTON(wxID_PREVIEW_PRINT, wxPreviewControlBar::OnPrint)
|
||||
EVT_BUTTON(wxID_PREVIEW_PREVIOUS, wxPreviewControlBar::OnPrevious)
|
||||
EVT_BUTTON(wxID_PREVIEW_NEXT, wxPreviewControlBar::OnNext)
|
||||
EVT_CHOICE(wxID_PREVIEW_ZOOM, wxPreviewControlBar::OnZoom)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* Dafaults for wxWindow etc. */
|
||||
const wxSize wxDefaultSize(-1, -1);
|
||||
const wxPoint wxDefaultPosition(-1, -1);
|
||||
|
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "wx/dc.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// constants
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -16,6 +16,9 @@
|
||||
#include "wx/image.h"
|
||||
#include <math.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// local data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/dcmemory.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxMemoryDC
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -24,6 +24,9 @@
|
||||
#include "wx/image.h"
|
||||
#include "wx/log.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// start and end of document/page
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
#include "wx/dcscreen.h"
|
||||
#include "wx/window.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// global data initialization
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
#include "wx/dialog.h"
|
||||
#include "wx/frame.h"
|
||||
#include "wx/app.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -18,6 +18,8 @@
|
||||
#include "wx/intl.h"
|
||||
#include "wx/utils.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "gdk/gdkprivate.h"
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
|
@@ -16,151 +16,156 @@
|
||||
#include "wx/intl.h"
|
||||
#include "wx/generic/msgdlgg.h"
|
||||
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxFileDialog
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void gtk_filedialog_ok_callback( GtkWidget *WXUNUSED(widget), gpointer data )
|
||||
{
|
||||
wxFileDialog *dialog = (wxFileDialog*)data;
|
||||
wxCommandEvent event(wxEVT_NULL);
|
||||
int style;
|
||||
wxFileDialog *dialog = (wxFileDialog*)data;
|
||||
wxCommandEvent event(wxEVT_NULL);
|
||||
int style;
|
||||
|
||||
style=dialog->GetStyle();
|
||||
style = dialog->GetStyle();
|
||||
|
||||
if((style&wxSAVE)&&(style&wxOVERWRITE_PROMPT))
|
||||
if(wxFileExists(gtk_file_selection_get_filename(GTK_FILE_SELECTION(dialog->m_widget) ))) {
|
||||
if((style&wxSAVE)&&(style&wxOVERWRITE_PROMPT))
|
||||
{
|
||||
if(wxFileExists(gtk_file_selection_get_filename(GTK_FILE_SELECTION(dialog->m_widget) )))
|
||||
{
|
||||
if(wxMessageBox(_("File exists. Overwrite?"),
|
||||
_("Confirm"), wxYES_NO) != wxYES)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
dialog->OnOK( event );
|
||||
dialog->OnOK( event );
|
||||
}
|
||||
|
||||
void gtk_filedialog_cancel_callback( GtkWidget *WXUNUSED(widget), gpointer data )
|
||||
{
|
||||
wxFileDialog *dialog = (wxFileDialog*)data;
|
||||
wxCommandEvent event(wxEVT_NULL);
|
||||
dialog->OnCancel( event );
|
||||
wxFileDialog *dialog = (wxFileDialog*)data;
|
||||
wxCommandEvent event(wxEVT_NULL);
|
||||
dialog->OnCancel( event );
|
||||
}
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxFileDialog,wxDialog)
|
||||
|
||||
wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
|
||||
const wxString& defaultDir, const wxString& defaultFileName,
|
||||
const wxString& wildCard,
|
||||
long style, const wxPoint& pos )
|
||||
wxFileDialog::wxFileDialog( wxWindow *parent, const wxString& message,
|
||||
const wxString& defaultDir, const wxString& defaultFileName,
|
||||
const wxString& wildCard,
|
||||
long style, const wxPoint& pos )
|
||||
{
|
||||
m_needParent = FALSE;
|
||||
m_needParent = FALSE;
|
||||
|
||||
PreCreation( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, "filedialog" );
|
||||
m_message = message;
|
||||
m_path = "";
|
||||
m_fileName = defaultFileName;
|
||||
m_dir = defaultDir;
|
||||
m_wildCard = wildCard;
|
||||
m_dialogStyle = style;
|
||||
m_filterIndex = 1;
|
||||
PreCreation( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, "filedialog" );
|
||||
m_message = message;
|
||||
m_path = "";
|
||||
m_fileName = defaultFileName;
|
||||
m_dir = defaultDir;
|
||||
m_wildCard = wildCard;
|
||||
m_dialogStyle = style;
|
||||
m_filterIndex = 1;
|
||||
|
||||
m_widget = gtk_file_selection_new( m_message );
|
||||
m_widget = gtk_file_selection_new( m_message );
|
||||
|
||||
int x = (gdk_screen_width () - 400) / 2;
|
||||
int y = (gdk_screen_height () - 400) / 2;
|
||||
gtk_widget_set_uposition( m_widget, x, y );
|
||||
int x = (gdk_screen_width () - 400) / 2;
|
||||
int y = (gdk_screen_height () - 400) / 2;
|
||||
gtk_widget_set_uposition( m_widget, x, y );
|
||||
|
||||
GtkFileSelection *sel = GTK_FILE_SELECTION(m_widget);
|
||||
GtkFileSelection *sel = GTK_FILE_SELECTION(m_widget);
|
||||
|
||||
m_path.Append(m_dir);
|
||||
if(! m_path.IsEmpty() && m_path.Last()!='/') m_path.Append('/');
|
||||
m_path.Append(m_fileName);
|
||||
m_path.Append(m_dir);
|
||||
if(! m_path.IsEmpty() && m_path.Last()!='/') m_path.Append('/');
|
||||
m_path.Append(m_fileName);
|
||||
|
||||
if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path);
|
||||
if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path);
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this );
|
||||
gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this );
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_filedialog_cancel_callback), (gpointer*)this );
|
||||
gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_filedialog_cancel_callback), (gpointer*)this );
|
||||
}
|
||||
|
||||
int wxFileDialog::ShowModal(void)
|
||||
{
|
||||
int ret = wxDialog::ShowModal();
|
||||
int ret = wxDialog::ShowModal();
|
||||
|
||||
if (ret == wxID_OK)
|
||||
{
|
||||
m_fileName = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
||||
m_path = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
||||
}
|
||||
return ret;
|
||||
if (ret == wxID_OK)
|
||||
{
|
||||
m_fileName = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
||||
m_path = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
char *wxFileSelector(const char *title,
|
||||
const char *defaultDir, const char *defaultFileName,
|
||||
const char *defaultExtension, const char *filter, int flags,
|
||||
wxWindow *parent, int x, int y)
|
||||
char *wxFileSelector( const char *title,
|
||||
const char *defaultDir, const char *defaultFileName,
|
||||
const char *defaultExtension, const char *filter, int flags,
|
||||
wxWindow *parent, int x, int y )
|
||||
{
|
||||
wxString filter2("");
|
||||
if ( defaultExtension && !filter )
|
||||
filter2 = wxString("*.") + wxString(defaultExtension) ;
|
||||
else if ( filter )
|
||||
filter2 = filter;
|
||||
wxString filter2("");
|
||||
if ( defaultExtension && !filter )
|
||||
filter2 = wxString("*.") + wxString(defaultExtension) ;
|
||||
else if ( filter )
|
||||
filter2 = filter;
|
||||
|
||||
wxString defaultDirString;
|
||||
if (defaultDir)
|
||||
defaultDirString = defaultDir;
|
||||
else
|
||||
defaultDirString = "";
|
||||
wxString defaultDirString;
|
||||
if (defaultDir)
|
||||
defaultDirString = defaultDir;
|
||||
else
|
||||
defaultDirString = "";
|
||||
|
||||
wxString defaultFilenameString;
|
||||
if (defaultFileName)
|
||||
defaultFilenameString = defaultFileName;
|
||||
else
|
||||
defaultFilenameString = "";
|
||||
wxString defaultFilenameString;
|
||||
if (defaultFileName)
|
||||
defaultFilenameString = defaultFileName;
|
||||
else
|
||||
defaultFilenameString = "";
|
||||
|
||||
wxFileDialog fileDialog( parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y) );
|
||||
|
||||
wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString,
|
||||
filter2, flags, wxPoint(x, y));
|
||||
|
||||
if ( fileDialog.ShowModal() == wxID_OK )
|
||||
{
|
||||
strcpy(wxBuffer, (const char *)fileDialog.GetPath());
|
||||
return wxBuffer;
|
||||
}
|
||||
else
|
||||
return (char *) NULL;
|
||||
if ( fileDialog.ShowModal() == wxID_OK )
|
||||
{
|
||||
strcpy(wxBuffer, (const char *)fileDialog.GetPath());
|
||||
return wxBuffer;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (char *) NULL;
|
||||
}
|
||||
}
|
||||
|
||||
char* wxLoadFileSelector(const char *what, const char *extension, const char *default_name,
|
||||
wxWindow *parent )
|
||||
char* wxLoadFileSelector( const char *what, const char *extension, const char *default_name, wxWindow *parent )
|
||||
{
|
||||
char *ext = (char *)extension;
|
||||
char *ext = (char *)extension;
|
||||
|
||||
char prompt[50];
|
||||
wxString str = _("Load %s file");
|
||||
sprintf(prompt, str, what);
|
||||
char prompt[50];
|
||||
wxString str = _("Load %s file");
|
||||
sprintf(prompt, str, what);
|
||||
|
||||
if (*ext == '.') ext++;
|
||||
char wild[60];
|
||||
sprintf(wild, "*.%s", ext);
|
||||
if (*ext == '.') ext++;
|
||||
char wild[60];
|
||||
sprintf(wild, "*.%s", ext);
|
||||
|
||||
return wxFileSelector (prompt, (const char *) NULL, default_name, ext, wild, 0, parent);
|
||||
return wxFileSelector (prompt, (const char *) NULL, default_name, ext, wild, 0, parent);
|
||||
}
|
||||
|
||||
char* wxSaveFileSelector(const char *what, const char *extension, const char *default_name,
|
||||
wxWindow *parent )
|
||||
{
|
||||
char *ext = (char *)extension;
|
||||
char *ext = (char *)extension;
|
||||
|
||||
char prompt[50];
|
||||
wxString str = _("Save %s file");
|
||||
sprintf(prompt, str, what);
|
||||
char prompt[50];
|
||||
wxString str = _("Save %s file");
|
||||
sprintf(prompt, str, what);
|
||||
|
||||
if (*ext == '.') ext++;
|
||||
char wild[60];
|
||||
sprintf(wild, "*.%s", ext);
|
||||
if (*ext == '.') ext++;
|
||||
char wild[60];
|
||||
sprintf(wild, "*.%s", ext);
|
||||
|
||||
return wxFileSelector (prompt, (const char *) NULL, default_name, ext, wild, 0, parent);
|
||||
return wxFileSelector (prompt, (const char *) NULL, default_name, ext, wild, 0, parent);
|
||||
}
|
||||
|
||||
|
@@ -16,6 +16,8 @@
|
||||
#include "wx/log.h"
|
||||
#include <strings.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// local data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -19,6 +19,10 @@
|
||||
#include "wx/toolbar.h"
|
||||
#include "wx/statusbr.h"
|
||||
#include "wx/dcclient.h"
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -12,6 +12,8 @@
|
||||
#endif
|
||||
|
||||
#include "wx/gauge.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxGauge
|
||||
|
@@ -18,6 +18,9 @@
|
||||
#include "wx/intl.h"
|
||||
#include "wx/checklst.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// conditional compilation
|
||||
//-------------------------------------------------------------------------
|
||||
|
270
src/gtk1/mdi.cpp
270
src/gtk1/mdi.cpp
@@ -14,9 +14,13 @@
|
||||
#include "wx/mdi.h"
|
||||
#include "wx/dialog.h"
|
||||
#include "wx/menu.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
#include <wx/intl.h>
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// constants
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -35,16 +39,16 @@ extern wxList wxPendingDelete;
|
||||
|
||||
static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
|
||||
{
|
||||
if ((win->m_x == alloc->x) &&
|
||||
(win->m_y == alloc->y) &&
|
||||
(win->m_width == alloc->width) &&
|
||||
(win->m_height == alloc->height) &&
|
||||
(win->m_sizeSet))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ((win->m_x == alloc->x) &&
|
||||
(win->m_y == alloc->y) &&
|
||||
(win->m_width == alloc->width) &&
|
||||
(win->m_height == alloc->height) &&
|
||||
(win->m_sizeSet))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
|
||||
win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -56,19 +60,19 @@ static void gtk_page_change_callback( GtkNotebook *WXUNUSED(widget),
|
||||
gint WXUNUSED(nPage),
|
||||
wxMDIClientWindow *client_win )
|
||||
{
|
||||
wxNode *node = client_win->m_children.First();
|
||||
while (node)
|
||||
{
|
||||
wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data();
|
||||
if (child_frame->m_page == page)
|
||||
wxNode *node = client_win->m_children.First();
|
||||
while (node)
|
||||
{
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)client_win->m_parent;
|
||||
mdi_frame->m_currentChild = child_frame;
|
||||
mdi_frame->SetMDIMenuBar( child_frame->m_menuBar );
|
||||
return;
|
||||
wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data();
|
||||
if (child_frame->m_page == page)
|
||||
{
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)client_win->m_parent;
|
||||
mdi_frame->m_currentChild = child_frame;
|
||||
mdi_frame->SetMDIMenuBar( child_frame->m_menuBar );
|
||||
return;
|
||||
}
|
||||
node = node->Next();
|
||||
}
|
||||
node = node->Next();
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -82,9 +86,9 @@ END_EVENT_TABLE()
|
||||
|
||||
wxMDIParentFrame::wxMDIParentFrame(void)
|
||||
{
|
||||
m_clientWindow = (wxMDIClientWindow *) NULL;
|
||||
m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
m_parentFrameActive = TRUE;
|
||||
m_clientWindow = (wxMDIClientWindow *) NULL;
|
||||
m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
m_parentFrameActive = TRUE;
|
||||
}
|
||||
|
||||
wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
|
||||
@@ -92,10 +96,10 @@ wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
|
||||
const wxPoint& pos, const wxSize& size,
|
||||
long style, const wxString& name )
|
||||
{
|
||||
m_clientWindow = (wxMDIClientWindow *) NULL;
|
||||
m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
m_parentFrameActive = TRUE;
|
||||
Create( parent, id, title, pos, size, style, name );
|
||||
m_clientWindow = (wxMDIClientWindow *) NULL;
|
||||
m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
m_parentFrameActive = TRUE;
|
||||
Create( parent, id, title, pos, size, style, name );
|
||||
}
|
||||
|
||||
wxMDIParentFrame::~wxMDIParentFrame(void)
|
||||
@@ -107,75 +111,75 @@ bool wxMDIParentFrame::Create( wxWindow *parent,
|
||||
const wxPoint& pos, const wxSize& size,
|
||||
long style, const wxString& name )
|
||||
{
|
||||
wxFrame::Create( parent, id, title, pos, size, style, name );
|
||||
wxFrame::Create( parent, id, title, pos, size, style, name );
|
||||
|
||||
OnCreateClient();
|
||||
OnCreateClient();
|
||||
|
||||
return TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::GtkOnSize( int x, int y, int width, int height )
|
||||
{
|
||||
wxFrame::GtkOnSize( x, y, width, height );
|
||||
wxFrame::GtkOnSize( x, y, width, height );
|
||||
|
||||
if (m_mdiMenuBar)
|
||||
{
|
||||
m_mdiMenuBar->m_x = 0;
|
||||
m_mdiMenuBar->m_y = 0;
|
||||
m_mdiMenuBar->m_width = m_width;
|
||||
m_mdiMenuBar->m_height = wxMENU_HEIGHT;
|
||||
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_mdiMenuBar->m_widget, 0, 0 );
|
||||
gtk_widget_set_usize( m_mdiMenuBar->m_widget, m_width, wxMENU_HEIGHT );
|
||||
}
|
||||
if (m_mdiMenuBar)
|
||||
{
|
||||
m_mdiMenuBar->m_x = 0;
|
||||
m_mdiMenuBar->m_y = 0;
|
||||
m_mdiMenuBar->m_width = m_width;
|
||||
m_mdiMenuBar->m_height = wxMENU_HEIGHT;
|
||||
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_mdiMenuBar->m_widget, 0, 0 );
|
||||
gtk_widget_set_usize( m_mdiMenuBar->m_widget, m_width, wxMENU_HEIGHT );
|
||||
}
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::SetMDIMenuBar( wxMenuBar *menu_bar )
|
||||
{
|
||||
if (m_mdiMenuBar) m_mdiMenuBar->Show( FALSE );
|
||||
m_mdiMenuBar = menu_bar;
|
||||
if (m_mdiMenuBar)
|
||||
{
|
||||
m_mdiMenuBar->m_x = 0;
|
||||
m_mdiMenuBar->m_y = 0;
|
||||
m_mdiMenuBar->m_width = m_width;
|
||||
m_mdiMenuBar->m_height = wxMENU_HEIGHT;
|
||||
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_mdiMenuBar->m_widget, 0, 0 );
|
||||
gtk_widget_set_usize( m_mdiMenuBar->m_widget, m_width, wxMENU_HEIGHT );
|
||||
m_mdiMenuBar->Show( TRUE );
|
||||
}
|
||||
if (m_mdiMenuBar) m_mdiMenuBar->Show( FALSE );
|
||||
m_mdiMenuBar = menu_bar;
|
||||
if (m_mdiMenuBar)
|
||||
{
|
||||
m_mdiMenuBar->m_x = 0;
|
||||
m_mdiMenuBar->m_y = 0;
|
||||
m_mdiMenuBar->m_width = m_width;
|
||||
m_mdiMenuBar->m_height = wxMENU_HEIGHT;
|
||||
gtk_myfixed_move( GTK_MYFIXED(m_wxwindow), m_mdiMenuBar->m_widget, 0, 0 );
|
||||
gtk_widget_set_usize( m_mdiMenuBar->m_widget, m_width, wxMENU_HEIGHT );
|
||||
m_mdiMenuBar->Show( TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
|
||||
{
|
||||
wxFrame::GetClientSize( width, height );
|
||||
wxFrame::GetClientSize( width, height );
|
||||
}
|
||||
|
||||
wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const
|
||||
{
|
||||
return m_currentChild;
|
||||
return m_currentChild;
|
||||
}
|
||||
|
||||
wxMDIClientWindow *wxMDIParentFrame::GetClientWindow(void) const
|
||||
{
|
||||
return m_clientWindow;
|
||||
return m_clientWindow;
|
||||
}
|
||||
|
||||
wxMDIClientWindow *wxMDIParentFrame::OnCreateClient(void)
|
||||
{
|
||||
m_clientWindow = new wxMDIClientWindow( this );
|
||||
return m_clientWindow;
|
||||
m_clientWindow = new wxMDIClientWindow( this );
|
||||
return m_clientWindow;
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::ActivateNext(void)
|
||||
{
|
||||
if (m_clientWindow)
|
||||
gtk_notebook_next_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
|
||||
if (m_clientWindow)
|
||||
gtk_notebook_next_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::ActivatePrevious(void)
|
||||
{
|
||||
if (m_clientWindow)
|
||||
gtk_notebook_prev_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
|
||||
if (m_clientWindow)
|
||||
gtk_notebook_prev_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
|
||||
}
|
||||
|
||||
void wxMDIParentFrame::OnActivate( wxActivateEvent& WXUNUSED(event) )
|
||||
@@ -193,13 +197,13 @@ void wxMDIParentFrame::OnSysColourChanged( wxSysColourChangedEvent& WXUNUSED(eve
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxFrame)
|
||||
|
||||
BEGIN_EVENT_TABLE(wxMDIChildFrame, wxFrame)
|
||||
EVT_ACTIVATE(wxMDIChildFrame::OnActivate)
|
||||
EVT_ACTIVATE(wxMDIChildFrame::OnActivate)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
wxMDIChildFrame::wxMDIChildFrame(void)
|
||||
{
|
||||
m_menuBar = (wxMenuBar *) NULL;
|
||||
m_page = (GtkNotebookPage *) NULL;
|
||||
m_menuBar = (wxMenuBar *) NULL;
|
||||
m_page = (GtkNotebookPage *) NULL;
|
||||
}
|
||||
|
||||
wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent,
|
||||
@@ -207,23 +211,23 @@ wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent,
|
||||
const wxPoint& WXUNUSED(pos), const wxSize& size,
|
||||
long style, const wxString& name )
|
||||
{
|
||||
m_menuBar = (wxMenuBar *) NULL;
|
||||
m_page = (GtkNotebookPage *) NULL;
|
||||
Create( parent, id, title, wxDefaultPosition, size, style, name );
|
||||
m_menuBar = (wxMenuBar *) NULL;
|
||||
m_page = (GtkNotebookPage *) NULL;
|
||||
Create( parent, id, title, wxDefaultPosition, size, style, name );
|
||||
}
|
||||
|
||||
wxMDIChildFrame::~wxMDIChildFrame(void)
|
||||
{
|
||||
if (m_menuBar)
|
||||
{
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
|
||||
if (mdi_frame->m_currentChild == this)
|
||||
if (m_menuBar)
|
||||
{
|
||||
mdi_frame->SetMDIMenuBar( (wxMenuBar *) NULL );
|
||||
mdi_frame->m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
|
||||
if (mdi_frame->m_currentChild == this)
|
||||
{
|
||||
mdi_frame->SetMDIMenuBar( (wxMenuBar *) NULL );
|
||||
mdi_frame->m_currentChild = (wxMDIChildFrame *) NULL;
|
||||
}
|
||||
delete m_menuBar;
|
||||
}
|
||||
delete m_menuBar;
|
||||
}
|
||||
}
|
||||
|
||||
bool wxMDIChildFrame::Create( wxMDIParentFrame *parent,
|
||||
@@ -231,64 +235,64 @@ bool wxMDIChildFrame::Create( wxMDIParentFrame *parent,
|
||||
const wxPoint& WXUNUSED(pos), const wxSize& size,
|
||||
long style, const wxString& name )
|
||||
{
|
||||
m_title = title;
|
||||
m_title = title;
|
||||
|
||||
return wxWindow::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name );
|
||||
return wxWindow::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name );
|
||||
}
|
||||
|
||||
void wxMDIChildFrame::GetClientSize( int *width, int *height ) const
|
||||
{
|
||||
wxWindow::GetClientSize( width, height );
|
||||
wxWindow::GetClientSize( width, height );
|
||||
}
|
||||
|
||||
void wxMDIChildFrame::AddChild( wxWindow *child )
|
||||
{
|
||||
wxWindow::AddChild( child );
|
||||
wxWindow::AddChild( child );
|
||||
}
|
||||
|
||||
static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
|
||||
{
|
||||
menu->SetInvokingWindow( win );
|
||||
wxNode *node = menu->m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *menuitem = (wxMenuItem*)node->Data();
|
||||
if (menuitem->IsSubMenu())
|
||||
SetInvokingWindow( menuitem->GetSubMenu(), win );
|
||||
node = node->Next();
|
||||
}
|
||||
menu->SetInvokingWindow( win );
|
||||
wxNode *node = menu->m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *menuitem = (wxMenuItem*)node->Data();
|
||||
if (menuitem->IsSubMenu())
|
||||
SetInvokingWindow( menuitem->GetSubMenu(), win );
|
||||
node = node->Next();
|
||||
}
|
||||
}
|
||||
|
||||
void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
|
||||
{
|
||||
m_menuBar = menu_bar;
|
||||
m_menuBar = menu_bar;
|
||||
|
||||
if (m_menuBar)
|
||||
{
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
|
||||
|
||||
if (m_menuBar->m_parent != this)
|
||||
if (m_menuBar)
|
||||
{
|
||||
wxNode *node = m_menuBar->m_menus.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
SetInvokingWindow( menu, this );
|
||||
node = node->Next();
|
||||
}
|
||||
wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
|
||||
|
||||
m_menuBar->m_parent = mdi_frame;
|
||||
if (m_menuBar->m_parent != this)
|
||||
{
|
||||
wxNode *node = m_menuBar->m_menus.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
SetInvokingWindow( menu, this );
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
m_menuBar->m_parent = mdi_frame;
|
||||
}
|
||||
mdi_frame->SetMDIMenuBar( m_menuBar );
|
||||
|
||||
gtk_myfixed_put( GTK_MYFIXED(mdi_frame->m_wxwindow),
|
||||
m_menuBar->m_widget, m_menuBar->m_x, m_menuBar->m_y );
|
||||
}
|
||||
mdi_frame->SetMDIMenuBar( m_menuBar );
|
||||
|
||||
gtk_myfixed_put( GTK_MYFIXED(mdi_frame->m_wxwindow),
|
||||
m_menuBar->m_widget, m_menuBar->m_x, m_menuBar->m_y );
|
||||
}
|
||||
}
|
||||
|
||||
wxMenuBar *wxMDIChildFrame::GetMenuBar()
|
||||
{
|
||||
return m_menuBar;
|
||||
return m_menuBar;
|
||||
}
|
||||
|
||||
void wxMDIChildFrame::Activate(void)
|
||||
@@ -305,24 +309,24 @@ void wxMDIChildFrame::OnActivate( wxActivateEvent &WXUNUSED(event) )
|
||||
|
||||
static void wxInsertChildInMDI( wxMDIClientWindow* parent, wxMDIChildFrame* child )
|
||||
{
|
||||
wxString s = child->m_title;
|
||||
if (s.IsNull()) s = _("MDI child");
|
||||
wxString s = child->m_title;
|
||||
if (s.IsNull()) s = _("MDI child");
|
||||
|
||||
GtkWidget *label_widget = gtk_label_new( s );
|
||||
gtk_misc_set_alignment( GTK_MISC(label_widget), 0.0, 0.5 );
|
||||
GtkWidget *label_widget = gtk_label_new( s );
|
||||
gtk_misc_set_alignment( GTK_MISC(label_widget), 0.0, 0.5 );
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(child->m_widget), "size_allocate",
|
||||
GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
|
||||
gtk_signal_connect( GTK_OBJECT(child->m_widget), "size_allocate",
|
||||
GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
|
||||
|
||||
GtkNotebook *notebook = GTK_NOTEBOOK(parent->m_widget);
|
||||
GtkNotebook *notebook = GTK_NOTEBOOK(parent->m_widget);
|
||||
|
||||
gtk_notebook_append_page( notebook, child->m_widget, label_widget );
|
||||
gtk_notebook_append_page( notebook, child->m_widget, label_widget );
|
||||
|
||||
child->m_page = (GtkNotebookPage*) (g_list_last(notebook->children)->data);
|
||||
child->m_page = (GtkNotebookPage*) (g_list_last(notebook->children)->data);
|
||||
|
||||
gtk_notebook_set_page( notebook, parent->m_children.Number()-1 );
|
||||
gtk_notebook_set_page( notebook, parent->m_children.Number()-1 );
|
||||
|
||||
gtk_page_change_callback( (GtkNotebook *) NULL, child->m_page, 0, parent );
|
||||
gtk_page_change_callback( (GtkNotebook *) NULL, child->m_page, 0, parent );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -337,7 +341,7 @@ wxMDIClientWindow::wxMDIClientWindow(void)
|
||||
|
||||
wxMDIClientWindow::wxMDIClientWindow( wxMDIParentFrame *parent, long style )
|
||||
{
|
||||
CreateClient( parent, style );
|
||||
CreateClient( parent, style );
|
||||
}
|
||||
|
||||
wxMDIClientWindow::~wxMDIClientWindow(void)
|
||||
@@ -346,28 +350,28 @@ wxMDIClientWindow::~wxMDIClientWindow(void)
|
||||
|
||||
bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style )
|
||||
{
|
||||
m_needParent = TRUE;
|
||||
m_needParent = TRUE;
|
||||
|
||||
m_insertCallback = (wxInsertChildFunction)wxInsertChildInMDI;
|
||||
m_insertCallback = (wxInsertChildFunction)wxInsertChildInMDI;
|
||||
|
||||
PreCreation( parent, -1, wxPoint(10,10), wxSize(100,100), style, "wxMDIClientWindow" );
|
||||
PreCreation( parent, -1, wxPoint(10,10), wxSize(100,100), style, "wxMDIClientWindow" );
|
||||
|
||||
m_widget = gtk_notebook_new();
|
||||
m_widget = gtk_notebook_new();
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page",
|
||||
GTK_SIGNAL_FUNC(gtk_page_change_callback), (gpointer)this );
|
||||
gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page",
|
||||
GTK_SIGNAL_FUNC(gtk_page_change_callback), (gpointer)this );
|
||||
|
||||
gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
|
||||
gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
|
||||
|
||||
m_parent->AddChild( this );
|
||||
m_parent->AddChild( this );
|
||||
|
||||
(m_parent->m_insertCallback)( m_parent, this );
|
||||
(m_parent->m_insertCallback)( m_parent, this );
|
||||
|
||||
PostCreation();
|
||||
PostCreation();
|
||||
|
||||
Show( TRUE );
|
||||
Show( TRUE );
|
||||
|
||||
return TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -16,6 +16,9 @@
|
||||
#include "wx/log.h"
|
||||
#include "wx/intl.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxMenuBar
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -24,124 +27,131 @@ IMPLEMENT_DYNAMIC_CLASS(wxMenuBar,wxWindow)
|
||||
|
||||
wxMenuBar::wxMenuBar()
|
||||
{
|
||||
m_needParent = FALSE; // hmmm
|
||||
m_needParent = FALSE; // hmmm
|
||||
|
||||
PreCreation( (wxWindow *) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, "menu" );
|
||||
PreCreation( (wxWindow *) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, "menu" );
|
||||
|
||||
m_menus.DeleteContents( TRUE );
|
||||
m_menus.DeleteContents( TRUE );
|
||||
|
||||
m_menubar = gtk_menu_bar_new();
|
||||
m_menubar = gtk_menu_bar_new();
|
||||
|
||||
m_widget = GTK_WIDGET(m_menubar);
|
||||
m_widget = GTK_WIDGET(m_menubar);
|
||||
|
||||
PostCreation();
|
||||
PostCreation();
|
||||
|
||||
Show( TRUE );
|
||||
Show( TRUE );
|
||||
}
|
||||
|
||||
void wxMenuBar::Append( wxMenu *menu, const wxString &title )
|
||||
{
|
||||
m_menus.Append( menu );
|
||||
menu->m_title = title; // ??????
|
||||
m_menus.Append( menu );
|
||||
menu->m_title = title;
|
||||
|
||||
int pos;
|
||||
do {
|
||||
pos = menu->m_title.First( '&' );
|
||||
if (pos != -1) menu->m_title.Remove( pos, 1 );
|
||||
} while (pos != -1);
|
||||
int pos;
|
||||
do
|
||||
{
|
||||
pos = menu->m_title.First( '&' );
|
||||
if (pos != -1) menu->m_title.Remove( pos, 1 );
|
||||
} while (pos != -1);
|
||||
|
||||
GtkWidget *root_menu;
|
||||
root_menu = gtk_menu_item_new_with_label( WXSTRINGCAST(menu->m_title) );
|
||||
gtk_widget_show( root_menu );
|
||||
gtk_menu_item_set_submenu( GTK_MENU_ITEM(root_menu), menu->m_menu );
|
||||
GtkWidget *root_menu;
|
||||
root_menu = gtk_menu_item_new_with_label( WXSTRINGCAST(menu->m_title) );
|
||||
gtk_widget_show( root_menu );
|
||||
gtk_menu_item_set_submenu( GTK_MENU_ITEM(root_menu), menu->m_menu );
|
||||
|
||||
gtk_menu_bar_append( GTK_MENU_BAR(m_menubar), root_menu );
|
||||
gtk_menu_bar_append( GTK_MENU_BAR(m_menubar), root_menu );
|
||||
}
|
||||
|
||||
static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString )
|
||||
{
|
||||
if (menu->m_title == menuString)
|
||||
{
|
||||
int res = menu->FindItem( itemString );
|
||||
if (res != -1) return res;
|
||||
}
|
||||
wxNode *node = menu->m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->IsSubMenu())
|
||||
return FindMenuItemRecursive(item->GetSubMenu(), menuString, itemString);
|
||||
node = node->Next();
|
||||
}
|
||||
return -1;
|
||||
if (menu->m_title == menuString)
|
||||
{
|
||||
int res = menu->FindItem( itemString );
|
||||
if (res != -1) return res;
|
||||
}
|
||||
|
||||
wxNode *node = menu->m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->IsSubMenu())
|
||||
return FindMenuItemRecursive(item->GetSubMenu(), menuString, itemString);
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int wxMenuBar::FindMenuItem( const wxString &menuString, const wxString &itemString ) const
|
||||
{
|
||||
wxNode *node = m_menus.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
int res = FindMenuItemRecursive( menu, menuString, itemString);
|
||||
if (res != -1) return res;
|
||||
node = node->Next();
|
||||
}
|
||||
return -1;
|
||||
wxNode *node = m_menus.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
int res = FindMenuItemRecursive( menu, menuString, itemString);
|
||||
if (res != -1) return res;
|
||||
node = node->Next();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Find a wxMenuItem using its id. Recurses down into sub-menus
|
||||
/* Find a wxMenuItem using its id. Recurses down into sub-menus */
|
||||
static wxMenuItem* FindMenuItemByIdRecursive(const wxMenu* menu, int id)
|
||||
{
|
||||
wxMenuItem* result = menu->FindItem(id);
|
||||
wxMenuItem* result = menu->FindItem(id);
|
||||
|
||||
wxNode *node = menu->m_items.First();
|
||||
while ( node && result == NULL ) {
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if ( item->IsSubMenu() )
|
||||
result = FindMenuItemByIdRecursive( item->GetSubMenu(), id );
|
||||
node = node->Next();
|
||||
}
|
||||
wxNode *node = menu->m_items.First();
|
||||
while ( node && result == NULL )
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->IsSubMenu())
|
||||
{
|
||||
result = FindMenuItemByIdRecursive( item->GetSubMenu(), id );
|
||||
}
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
return result;
|
||||
return result;
|
||||
}
|
||||
|
||||
wxMenuItem* wxMenuBar::FindMenuItemById( int id ) const
|
||||
{
|
||||
wxMenuItem* result = 0;
|
||||
wxNode *node = m_menus.First();
|
||||
while (node && result == 0)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
result = FindMenuItemByIdRecursive( menu, id );
|
||||
node = node->Next();
|
||||
}
|
||||
return result;
|
||||
wxMenuItem* result = 0;
|
||||
wxNode *node = m_menus.First();
|
||||
while (node && result == 0)
|
||||
{
|
||||
wxMenu *menu = (wxMenu*)node->Data();
|
||||
result = FindMenuItemByIdRecursive( menu, id );
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void wxMenuBar::Check( int id, bool check )
|
||||
{
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) item->Check(check);
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) item->Check(check);
|
||||
}
|
||||
|
||||
bool wxMenuBar::Checked( int id ) const
|
||||
{
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) return item->IsChecked();
|
||||
return FALSE;
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) return item->IsChecked();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void wxMenuBar::Enable( int id, bool enable )
|
||||
{
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) item->Enable(enable);
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) item->Enable(enable);
|
||||
}
|
||||
|
||||
bool wxMenuBar::Enabled( int id ) const
|
||||
{
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) return item->IsEnabled();
|
||||
return FALSE;
|
||||
wxMenuItem* item = FindMenuItemById( id );
|
||||
if (item) return item->IsEnabled();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -150,27 +160,27 @@ bool wxMenuBar::Enabled( int id ) const
|
||||
|
||||
static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
|
||||
{
|
||||
int id = menu->FindMenuIdByMenuItem(widget);
|
||||
int id = menu->FindMenuIdByMenuItem(widget);
|
||||
|
||||
// should find it for normal (not popup) menu
|
||||
wxASSERT( (id != -1) || (menu->GetInvokingWindow() != NULL) );
|
||||
/* should find it for normal (not popup) menu */
|
||||
wxASSERT( (id != -1) || (menu->GetInvokingWindow() != NULL) );
|
||||
|
||||
if (!menu->IsEnabled(id)) return;
|
||||
if (!menu->IsEnabled(id)) return;
|
||||
|
||||
wxCommandEvent event( wxEVT_COMMAND_MENU_SELECTED, id );
|
||||
event.SetEventObject( menu );
|
||||
event.SetInt(id );
|
||||
wxCommandEvent event( wxEVT_COMMAND_MENU_SELECTED, id );
|
||||
event.SetEventObject( menu );
|
||||
event.SetInt(id );
|
||||
|
||||
if (menu->m_callback)
|
||||
{
|
||||
(void) (*(menu->m_callback)) (*menu, event);
|
||||
return;
|
||||
}
|
||||
if (menu->m_callback)
|
||||
{
|
||||
(void) (*(menu->m_callback)) (*menu, event);
|
||||
return;
|
||||
}
|
||||
|
||||
if (menu->GetEventHandler()->ProcessEvent(event)) return;
|
||||
if (menu->GetEventHandler()->ProcessEvent(event)) return;
|
||||
|
||||
wxWindow *win = menu->GetInvokingWindow();
|
||||
if (win) win->GetEventHandler()->ProcessEvent( event );
|
||||
wxWindow *win = menu->GetInvokingWindow();
|
||||
if (win) win->GetEventHandler()->ProcessEvent( event );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -179,28 +189,29 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
|
||||
|
||||
static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu )
|
||||
{
|
||||
int id = menu->FindMenuIdByMenuItem(widget);
|
||||
int id = menu->FindMenuIdByMenuItem(widget);
|
||||
|
||||
wxASSERT( id != -1 ); // should find it!
|
||||
wxASSERT( id != -1 ); // should find it!
|
||||
|
||||
if (!menu->IsEnabled(id)) return;
|
||||
if (!menu->IsEnabled(id)) return;
|
||||
|
||||
wxCommandEvent event( wxEVT_MENU_HIGHLIGHT, id );
|
||||
event.SetEventObject( menu );
|
||||
event.SetInt(id );
|
||||
wxCommandEvent event( wxEVT_MENU_HIGHLIGHT, id );
|
||||
event.SetEventObject( menu );
|
||||
event.SetInt(id );
|
||||
|
||||
/* wxMSW doesn't call callback here either
|
||||
if (menu->m_callback)
|
||||
{
|
||||
(void) (*(menu->m_callback)) (*menu, event);
|
||||
return;
|
||||
}
|
||||
/* wxMSW doesn't call callback here either
|
||||
|
||||
if (menu->m_callback)
|
||||
{
|
||||
(void) (*(menu->m_callback)) (*menu, event);
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
if (menu->GetEventHandler()->ProcessEvent(event)) return;
|
||||
if (menu->GetEventHandler()->ProcessEvent(event)) return;
|
||||
|
||||
wxWindow *win = menu->GetInvokingWindow();
|
||||
if (win) win->GetEventHandler()->ProcessEvent( event );
|
||||
wxWindow *win = menu->GetInvokingWindow();
|
||||
if (win) win->GetEventHandler()->ProcessEvent( event );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -211,276 +222,305 @@ IMPLEMENT_DYNAMIC_CLASS(wxMenuItem,wxObject)
|
||||
|
||||
wxMenuItem::wxMenuItem()
|
||||
{
|
||||
m_id = ID_SEPARATOR;
|
||||
m_isCheckMenu = FALSE;
|
||||
m_isChecked = FALSE;
|
||||
m_isEnabled = TRUE;
|
||||
m_subMenu = (wxMenu *) NULL;
|
||||
m_menuItem = (GtkWidget *) NULL;
|
||||
m_id = ID_SEPARATOR;
|
||||
m_isCheckMenu = FALSE;
|
||||
m_isChecked = FALSE;
|
||||
m_isEnabled = TRUE;
|
||||
m_subMenu = (wxMenu *) NULL;
|
||||
m_menuItem = (GtkWidget *) NULL;
|
||||
}
|
||||
|
||||
// it's valid for this function to be called even if m_menuItem == NULL
|
||||
void wxMenuItem::SetName(const wxString& str)
|
||||
/* it's valid for this function to be called even if m_menuItem == NULL */
|
||||
void wxMenuItem::SetName( const wxString& str )
|
||||
{
|
||||
m_text = "";
|
||||
for ( const char *pc = str; *pc != '\0'; pc++ )
|
||||
{
|
||||
if ( *pc == '&' )
|
||||
pc++; // skip it
|
||||
m_text = "";
|
||||
for ( const char *pc = str; *pc != '\0'; pc++ )
|
||||
{
|
||||
if (*pc == '&') pc++; /* skip it */
|
||||
m_text << *pc;
|
||||
}
|
||||
|
||||
m_text << *pc;
|
||||
}
|
||||
|
||||
if ( m_menuItem )
|
||||
{
|
||||
GtkLabel *label = GTK_LABEL( GTK_BIN(m_menuItem)->child );
|
||||
|
||||
gtk_label_set( label, m_text.c_str());
|
||||
}
|
||||
if (m_menuItem)
|
||||
{
|
||||
GtkLabel *label = GTK_LABEL( GTK_BIN(m_menuItem)->child );
|
||||
gtk_label_set( label, m_text.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
void wxMenuItem::Check( bool check )
|
||||
{
|
||||
wxCHECK_RET( m_menuItem, "invalid menu item" );
|
||||
wxCHECK_RET( m_menuItem, "invalid menu item" );
|
||||
|
||||
wxCHECK_RET( IsCheckable(), "Can't check uncheckable item!" )
|
||||
wxCHECK_RET( IsCheckable(), "Can't check uncheckable item!" )
|
||||
|
||||
m_isChecked = check;
|
||||
gtk_check_menu_item_set_state( (GtkCheckMenuItem*)m_menuItem, (gint)check );
|
||||
m_isChecked = check;
|
||||
gtk_check_menu_item_set_state( (GtkCheckMenuItem*)m_menuItem, (gint)check );
|
||||
}
|
||||
|
||||
void wxMenuItem::Enable( bool enable )
|
||||
{
|
||||
wxCHECK_RET( m_menuItem, "invalid menu item" );
|
||||
wxCHECK_RET( m_menuItem, "invalid menu item" );
|
||||
|
||||
gtk_widget_set_sensitive( m_menuItem, enable );
|
||||
m_isEnabled = enable;
|
||||
gtk_widget_set_sensitive( m_menuItem, enable );
|
||||
m_isEnabled = enable;
|
||||
}
|
||||
|
||||
bool wxMenuItem::IsChecked() const
|
||||
{
|
||||
wxCHECK_MSG( m_menuItem, FALSE, "invalid menu item" );
|
||||
wxCHECK_MSG( m_menuItem, FALSE, "invalid menu item" );
|
||||
|
||||
wxCHECK( IsCheckable(), FALSE ); // can't get state of uncheckable item!
|
||||
wxCHECK( IsCheckable(), FALSE ); // can't get state of uncheckable item!
|
||||
|
||||
bool bIsChecked = ((GtkCheckMenuItem*)m_menuItem)->active != 0;
|
||||
bool bIsChecked = ((GtkCheckMenuItem*)m_menuItem)->active != 0;
|
||||
|
||||
wxASSERT( bIsChecked == m_isChecked ); // consistency check
|
||||
wxASSERT( bIsChecked == m_isChecked ); // consistency check
|
||||
|
||||
return bIsChecked;
|
||||
return bIsChecked;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxMenuItem
|
||||
// wxMenu
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler)
|
||||
|
||||
wxMenu::wxMenu( const wxString& title, const wxFunction func )
|
||||
{
|
||||
m_title = title;
|
||||
m_items.DeleteContents( TRUE );
|
||||
m_invokingWindow = (wxWindow *) NULL;
|
||||
m_menu = gtk_menu_new(); // Do not show!
|
||||
m_title = title;
|
||||
m_items.DeleteContents( TRUE );
|
||||
m_invokingWindow = (wxWindow *) NULL;
|
||||
m_menu = gtk_menu_new(); // Do not show!
|
||||
|
||||
m_callback = func;
|
||||
m_eventHandler = this;
|
||||
m_clientData = (void*) NULL;
|
||||
m_callback = func;
|
||||
m_eventHandler = this;
|
||||
m_clientData = (void*) NULL;
|
||||
|
||||
if (m_title.IsNull()) m_title = "";
|
||||
if (m_title != "")
|
||||
{
|
||||
Append(-2, m_title);
|
||||
AppendSeparator();
|
||||
}
|
||||
if (m_title.IsNull()) m_title = "";
|
||||
if (m_title != "")
|
||||
{
|
||||
Append(-2, m_title);
|
||||
AppendSeparator();
|
||||
}
|
||||
}
|
||||
|
||||
void wxMenu::SetTitle( const wxString& title )
|
||||
{
|
||||
// Waiting for something better.
|
||||
m_title = title;
|
||||
/* Waiting for something better. */
|
||||
m_title = title;
|
||||
}
|
||||
|
||||
const wxString wxMenu::GetTitle() const
|
||||
{
|
||||
return m_title;
|
||||
return m_title;
|
||||
}
|
||||
|
||||
void wxMenu::AppendSeparator()
|
||||
{
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(ID_SEPARATOR);
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(ID_SEPARATOR);
|
||||
|
||||
GtkWidget *menuItem = gtk_menu_item_new();
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
mitem->SetMenuItem(menuItem);
|
||||
m_items.Append( mitem );
|
||||
GtkWidget *menuItem = gtk_menu_item_new();
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
mitem->SetMenuItem(menuItem);
|
||||
m_items.Append( mitem );
|
||||
}
|
||||
|
||||
void wxMenu::Append( int id, const wxString &item, const wxString &helpStr, bool checkable )
|
||||
{
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(id);
|
||||
mitem->SetText(item);
|
||||
mitem->SetHelp(helpStr);
|
||||
mitem->SetCheckable(checkable);
|
||||
const char *text = mitem->GetText();
|
||||
GtkWidget *menuItem = checkable ? gtk_check_menu_item_new_with_label(text)
|
||||
: gtk_menu_item_new_with_label(text);
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(id);
|
||||
mitem->SetText(item);
|
||||
mitem->SetHelp(helpStr);
|
||||
mitem->SetCheckable(checkable);
|
||||
const char *text = mitem->GetText();
|
||||
GtkWidget *menuItem = checkable ? gtk_check_menu_item_new_with_label(text)
|
||||
: gtk_menu_item_new_with_label(text);
|
||||
|
||||
mitem->SetMenuItem(menuItem);
|
||||
mitem->SetMenuItem(menuItem);
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(menuItem), "activate",
|
||||
GTK_SIGNAL_FUNC(gtk_menu_clicked_callback),
|
||||
(gpointer*)this );
|
||||
gtk_signal_connect( GTK_OBJECT(menuItem), "activate",
|
||||
GTK_SIGNAL_FUNC(gtk_menu_clicked_callback),
|
||||
(gpointer*)this );
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(menuItem), "select",
|
||||
GTK_SIGNAL_FUNC(gtk_menu_hilight_callback),
|
||||
(gpointer*)this );
|
||||
gtk_signal_connect( GTK_OBJECT(menuItem), "select",
|
||||
GTK_SIGNAL_FUNC(gtk_menu_hilight_callback),
|
||||
(gpointer*)this );
|
||||
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
m_items.Append( mitem );
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
m_items.Append( mitem );
|
||||
}
|
||||
|
||||
void wxMenu::Append( int id, const wxString &text, wxMenu *subMenu, const wxString &helpStr )
|
||||
{
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(id);
|
||||
mitem->SetText(text);
|
||||
wxMenuItem *mitem = new wxMenuItem();
|
||||
mitem->SetId(id);
|
||||
mitem->SetText(text);
|
||||
|
||||
GtkWidget *menuItem = gtk_menu_item_new_with_label(mitem->GetText());
|
||||
mitem->SetHelp(helpStr);
|
||||
mitem->SetMenuItem(menuItem);
|
||||
mitem->SetSubMenu(subMenu);
|
||||
GtkWidget *menuItem = gtk_menu_item_new_with_label(mitem->GetText());
|
||||
mitem->SetHelp(helpStr);
|
||||
mitem->SetMenuItem(menuItem);
|
||||
mitem->SetSubMenu(subMenu);
|
||||
|
||||
gtk_menu_item_set_submenu( GTK_MENU_ITEM(menuItem), subMenu->m_menu );
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
m_items.Append( mitem );
|
||||
gtk_menu_item_set_submenu( GTK_MENU_ITEM(menuItem), subMenu->m_menu );
|
||||
gtk_menu_append( GTK_MENU(m_menu), menuItem );
|
||||
gtk_widget_show( menuItem );
|
||||
m_items.Append( mitem );
|
||||
}
|
||||
|
||||
int wxMenu::FindItem( const wxString itemString ) const
|
||||
{
|
||||
wxString s( itemString );
|
||||
wxString s( itemString );
|
||||
|
||||
int pos;
|
||||
do {
|
||||
pos = s.First( '&' );
|
||||
if (pos != -1) s.Remove( pos, 1 );
|
||||
} while (pos != -1);
|
||||
int pos;
|
||||
do
|
||||
{
|
||||
pos = s.First( '&' );
|
||||
if (pos != -1) s.Remove( pos, 1 );
|
||||
} while (pos != -1);
|
||||
|
||||
wxNode *node = m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->GetText() == s)
|
||||
return item->GetId();
|
||||
node = node->Next();
|
||||
}
|
||||
wxNode *node = m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->GetText() == s)
|
||||
{
|
||||
return item->GetId();
|
||||
}
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
return -1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
void wxMenu::Enable( int id, bool enable )
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if ( item )
|
||||
item->Enable(enable);
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
item->Enable(enable);
|
||||
}
|
||||
}
|
||||
|
||||
bool wxMenu::IsEnabled( int id ) const
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if ( item )
|
||||
return item->IsEnabled();
|
||||
else
|
||||
return FALSE;
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
return item->IsEnabled();
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void wxMenu::Check( int id, bool enable )
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if ( item )
|
||||
item->Check(enable);
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
item->Check(enable);
|
||||
}
|
||||
}
|
||||
|
||||
bool wxMenu::IsChecked( int id ) const
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if ( item )
|
||||
return item->IsChecked();
|
||||
else
|
||||
return FALSE;
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
return item->IsChecked();
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void wxMenu::SetLabel( int id, const wxString &label )
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
item->SetText(label);
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
item->SetText(label);
|
||||
}
|
||||
}
|
||||
|
||||
wxString wxMenu::GetLabel( int id ) const
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item) return item->GetText();
|
||||
return "";
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
return item->GetText();
|
||||
}
|
||||
else
|
||||
{
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
void wxMenu::SetHelpString( int id, const wxString& helpString )
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item) item->SetHelp( helpString );
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item) item->SetHelp( helpString );
|
||||
}
|
||||
|
||||
wxString wxMenu::GetHelpString( int id ) const
|
||||
{
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item) return item->GetHelp();
|
||||
return "";
|
||||
wxMenuItem *item = FindItem(id);
|
||||
if (item)
|
||||
{
|
||||
return item->GetHelp();
|
||||
}
|
||||
else
|
||||
{
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
int wxMenu::FindMenuIdByMenuItem( GtkWidget *menuItem ) const
|
||||
{
|
||||
wxNode *node = m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->GetMenuItem() == menuItem)
|
||||
return item->GetId();
|
||||
node = node->Next();
|
||||
}
|
||||
wxNode *node = m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->GetMenuItem() == menuItem)
|
||||
return item->GetId();
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
return -1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
wxMenuItem *wxMenu::FindItem(int id) const
|
||||
{
|
||||
wxNode *node = m_items.First();
|
||||
while (node) {
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if ( item->GetId() == id )
|
||||
return item;
|
||||
node = node->Next();
|
||||
}
|
||||
wxNode *node = m_items.First();
|
||||
while (node)
|
||||
{
|
||||
wxMenuItem *item = (wxMenuItem*)node->Data();
|
||||
if (item->GetId() == id)
|
||||
{
|
||||
return item;
|
||||
}
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
// Not finding anything here can be correct
|
||||
// when search the entire menu system for
|
||||
// an entry -> no error message.
|
||||
/* Not finding anything here can be correct
|
||||
* when search the entire menu system for
|
||||
* an entry -> no error message. */
|
||||
|
||||
return (wxMenuItem *) NULL;
|
||||
return (wxMenuItem *) NULL;
|
||||
}
|
||||
|
||||
void wxMenu::SetInvokingWindow( wxWindow *win )
|
||||
{
|
||||
m_invokingWindow = win;
|
||||
m_invokingWindow = win;
|
||||
}
|
||||
|
||||
wxWindow *wxMenu::GetInvokingWindow()
|
||||
{
|
||||
return m_invokingWindow;
|
||||
return m_invokingWindow;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -14,6 +14,10 @@
|
||||
#include "wx/minifram.h"
|
||||
#include "wx/dcscreen.h"
|
||||
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// "clicked"
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -17,6 +17,10 @@
|
||||
#include "wx/imaglist.h"
|
||||
#include "wx/intl.h"
|
||||
#include "wx/log.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
#include "gdk/gdkkeysyms.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -15,6 +15,8 @@
|
||||
|
||||
#include "wx/palette.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxPalette
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,8 @@
|
||||
|
||||
#include "wx/pen.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxPen
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -15,6 +15,9 @@
|
||||
#include "wx/radiobox.h"
|
||||
#include "wx/dialog.h"
|
||||
#include "wx/frame.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,8 @@
|
||||
#endif
|
||||
|
||||
#include "wx/radiobut.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
|
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "wx/region.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxRegion
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -16,6 +16,9 @@
|
||||
#include "wx/utils.h"
|
||||
#include <math.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -15,6 +15,9 @@
|
||||
#include "wx/settings.h"
|
||||
#include "wx/debug.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
/*
|
||||
#define wxSYS_COLOUR_SCROLLBAR 0
|
||||
#define wxSYS_COLOUR_BACKGROUND 1
|
||||
|
@@ -15,6 +15,9 @@
|
||||
#include "wx/utils.h"
|
||||
#include <math.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -16,6 +16,9 @@
|
||||
#include "wx/utils.h"
|
||||
#include <math.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -28,31 +31,31 @@ extern bool g_blockEventsOnDrag;
|
||||
|
||||
static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *win )
|
||||
{
|
||||
if (!win->HasVMT()) return;
|
||||
if (g_blockEventsOnDrag) return;
|
||||
if (!win->HasVMT()) return;
|
||||
if (g_blockEventsOnDrag) return;
|
||||
|
||||
float diff = win->m_adjust->value - win->m_oldPos;
|
||||
if (fabs(diff) < 0.2) return;
|
||||
float diff = win->m_adjust->value - win->m_oldPos;
|
||||
if (fabs(diff) < 0.2) return;
|
||||
|
||||
wxEventType command = wxEVT_NULL;
|
||||
wxEventType command = wxEVT_NULL;
|
||||
|
||||
float line_step = win->m_adjust->step_increment;
|
||||
float page_step = win->m_adjust->page_increment;
|
||||
float line_step = win->m_adjust->step_increment;
|
||||
float page_step = win->m_adjust->page_increment;
|
||||
|
||||
if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLL_LINEDOWN;
|
||||
else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLL_LINEUP;
|
||||
else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLL_PAGEDOWN;
|
||||
else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLL_PAGEUP;
|
||||
else command = wxEVT_SCROLL_THUMBTRACK;
|
||||
if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLL_LINEDOWN;
|
||||
else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLL_LINEUP;
|
||||
else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLL_PAGEDOWN;
|
||||
else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLL_PAGEUP;
|
||||
else command = wxEVT_SCROLL_THUMBTRACK;
|
||||
|
||||
int value = (int)(win->m_adjust->value+0.5);
|
||||
int value = (int)(win->m_adjust->value+0.5);
|
||||
|
||||
wxSpinEvent event( command, win->GetId());
|
||||
event.SetPosition( value );
|
||||
event.SetOrientation( wxVERTICAL );
|
||||
event.SetEventObject( win );
|
||||
wxSpinEvent event( command, win->GetId());
|
||||
event.SetPosition( value );
|
||||
event.SetOrientation( wxVERTICAL );
|
||||
event.SetEventObject( win );
|
||||
|
||||
win->ProcessEvent( event );
|
||||
win->ProcessEvent( event );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -72,38 +75,40 @@ wxSpinButton::wxSpinButton()
|
||||
bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size,
|
||||
long style, const wxString& name)
|
||||
{
|
||||
m_needParent = TRUE;
|
||||
m_needParent = TRUE;
|
||||
|
||||
wxSize new_size = size;
|
||||
new_size.x = 16;
|
||||
if (new_size.y == -1) new_size.y = 30;
|
||||
wxSize new_size = size;
|
||||
new_size.x = 16;
|
||||
if (new_size.y == -1) new_size.y = 30;
|
||||
|
||||
PreCreation( parent, id, pos, new_size, style, name );
|
||||
PreCreation( parent, id, pos, new_size, style, name );
|
||||
|
||||
// SetValidator( validator );
|
||||
|
||||
m_oldPos = 0.0;
|
||||
m_oldPos = 0.0;
|
||||
|
||||
m_adjust = (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 100.0, 1.0, 5.0, 0.0);
|
||||
m_adjust = (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 100.0, 1.0, 5.0, 0.0);
|
||||
|
||||
m_widget = gtk_spin_button_new( m_adjust, 0, 0 );
|
||||
m_widget = gtk_spin_button_new( m_adjust, 0, 0 );
|
||||
|
||||
gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget), (m_windowStyle & wxSP_WRAP) );
|
||||
gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget), (m_windowStyle & wxSP_WRAP) );
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (m_adjust), "value_changed",
|
||||
(GtkSignalFunc) gtk_spinbutt_callback, (gpointer) this );
|
||||
gtk_signal_connect( GTK_OBJECT (m_adjust),
|
||||
"value_changed",
|
||||
(GtkSignalFunc) gtk_spinbutt_callback,
|
||||
(gpointer) this );
|
||||
|
||||
m_parent->AddChild( this );
|
||||
m_parent->AddChild( this );
|
||||
|
||||
(m_parent->m_insertCallback)( m_parent, this );
|
||||
(m_parent->m_insertCallback)( m_parent, this );
|
||||
|
||||
PostCreation();
|
||||
PostCreation();
|
||||
|
||||
SetBackgroundColour( parent->GetBackgroundColour() );
|
||||
SetBackgroundColour( parent->GetBackgroundColour() );
|
||||
|
||||
Show( TRUE );
|
||||
Show( TRUE );
|
||||
|
||||
return TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
wxSpinButton::~wxSpinButton()
|
||||
@@ -112,71 +117,74 @@ wxSpinButton::~wxSpinButton()
|
||||
|
||||
int wxSpinButton::GetMin() const
|
||||
{
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
|
||||
return (int)(m_adjust->lower+0.5);
|
||||
return (int)(m_adjust->lower+0.5);
|
||||
}
|
||||
|
||||
int wxSpinButton::GetMax() const
|
||||
{
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
|
||||
return (int)(m_adjust->upper+0.5);
|
||||
return (int)(m_adjust->upper+0.5);
|
||||
}
|
||||
|
||||
int wxSpinButton::GetValue() const
|
||||
{
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
wxCHECK_MSG( (m_widget != NULL), 0, "invalid spin button" );
|
||||
|
||||
return (int)(m_adjust->value+0.5);
|
||||
return (int)(m_adjust->value+0.5);
|
||||
}
|
||||
|
||||
void wxSpinButton::SetValue( int value )
|
||||
{
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
|
||||
float fpos = (float)value;
|
||||
m_oldPos = fpos;
|
||||
if (fabs(fpos-m_adjust->value) < 0.2) return;
|
||||
m_adjust->value = fpos;
|
||||
float fpos = (float)value;
|
||||
m_oldPos = fpos;
|
||||
if (fabs(fpos-m_adjust->value) < 0.2) return;
|
||||
|
||||
m_adjust->value = fpos;
|
||||
|
||||
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" );
|
||||
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" );
|
||||
}
|
||||
|
||||
void wxSpinButton::SetRange(int minVal, int maxVal)
|
||||
{
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
|
||||
float fmin = (float)minVal;
|
||||
float fmax = (float)maxVal;
|
||||
float fmin = (float)minVal;
|
||||
float fmax = (float)maxVal;
|
||||
|
||||
if ((fabs(fmin-m_adjust->lower) < 0.2) &&
|
||||
(fabs(fmax-m_adjust->upper) < 0.2))
|
||||
return;
|
||||
if ((fabs(fmin-m_adjust->lower) < 0.2) &&
|
||||
(fabs(fmax-m_adjust->upper) < 0.2))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_adjust->lower = fmin;
|
||||
m_adjust->upper = fmax;
|
||||
m_adjust->lower = fmin;
|
||||
m_adjust->upper = fmax;
|
||||
|
||||
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" );
|
||||
gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" );
|
||||
}
|
||||
|
||||
void wxSpinButton::OnSize( wxSizeEvent &WXUNUSED(event) )
|
||||
{
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
wxCHECK_RET( (m_widget != NULL), "invalid spin button" );
|
||||
|
||||
m_width = 16;
|
||||
gtk_widget_set_usize( m_widget, m_width, m_height );
|
||||
m_width = 16;
|
||||
gtk_widget_set_usize( m_widget, m_width, m_height );
|
||||
}
|
||||
|
||||
bool wxSpinButton::IsOwnGtkWindow( GdkWindow *window )
|
||||
{
|
||||
return GTK_SPIN_BUTTON(m_widget)->panel == window;
|
||||
return GTK_SPIN_BUTTON(m_widget)->panel == window;
|
||||
}
|
||||
|
||||
void wxSpinButton::ApplyWidgetStyle()
|
||||
{
|
||||
SetWidgetStyle();
|
||||
gtk_widget_set_style( m_widget, m_widgetStyle );
|
||||
SetWidgetStyle();
|
||||
gtk_widget_set_style( m_widget, m_widgetStyle );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/statbmp.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxStaticBitmap
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,9 @@
|
||||
|
||||
#include "wx/statbox.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxStaticBox
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "wx/stattext.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxStaticText
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -13,6 +13,10 @@
|
||||
|
||||
#include "wx/toolbar.h"
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// data
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -99,6 +103,8 @@ wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id,
|
||||
|
||||
wxToolBar::~wxToolBar()
|
||||
{
|
||||
delete m_fg;
|
||||
delete m_bg;
|
||||
}
|
||||
|
||||
bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
|
||||
@@ -121,18 +127,20 @@ bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
|
||||
m_widget = GTK_WIDGET(m_toolbar);
|
||||
|
||||
gtk_toolbar_set_tooltips( GTK_TOOLBAR(m_toolbar), TRUE );
|
||||
|
||||
m_fg = new GdkColor;
|
||||
m_fg->red = 0;
|
||||
m_fg->green = 0;
|
||||
m_fg->blue = 0;
|
||||
gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), m_fg );
|
||||
|
||||
m_fg.red = 0;
|
||||
m_fg.green = 0;
|
||||
m_fg.blue = 0;
|
||||
gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), &m_fg );
|
||||
m_bg = new GdkColor;
|
||||
m_bg->red = 65535;
|
||||
m_bg->green = 65535;
|
||||
m_bg->blue = 50000;
|
||||
gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), m_bg );
|
||||
|
||||
m_bg.red = 65535;
|
||||
m_bg.green = 65535;
|
||||
m_bg.blue = 50000;
|
||||
gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), &m_bg );
|
||||
|
||||
gtk_tooltips_set_colors( GTK_TOOLBAR(m_toolbar)->tooltips, &m_bg, &m_fg );
|
||||
gtk_tooltips_set_colors( GTK_TOOLBAR(m_toolbar)->tooltips, m_bg, m_fg );
|
||||
|
||||
m_xMargin = 0;
|
||||
m_yMargin = 0;
|
||||
|
@@ -20,6 +20,8 @@
|
||||
#include <sys/stat.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "gdk/gdkkeysyms.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -24,6 +24,9 @@
|
||||
#include "wx/utils.h"
|
||||
#include "wx/log.h"
|
||||
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
enum thread_state
|
||||
{
|
||||
STATE_IDLE = 0,
|
||||
|
@@ -23,7 +23,11 @@
|
||||
#include "wx/utils.h"
|
||||
#include "wx/log.h"
|
||||
|
||||
enum thread_state {
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
enum thread_state
|
||||
{
|
||||
STATE_IDLE = 0,
|
||||
STATE_RUNNING,
|
||||
STATE_CANCELED,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user