Merge wxiOS fixes

Make it build again and add instructions about how to build and use it.

Closes https://github.com/wxWidgets/wxWidgets/pull/213
This commit is contained in:
Vadim Zeitlin 2016-02-22 23:53:30 +01:00
commit f037e1206d
13 changed files with 368 additions and 58 deletions

View File

@ -5403,7 +5403,8 @@ COND_TOOLKIT_OSX_IPHONE___GUI_SRC_OBJECTS = \
monodll_iphone_toolbar.o \
monodll_iphone_utils.o \
monodll_iphone_window.o \
monodll_cocoa_stdpaths.o
monodll_cocoa_stdpaths.o \
monodll_iphone_settings.o
@COND_TOOLKIT_OSX_IPHONE@__GUI_SRC_OBJECTS = $(COND_TOOLKIT_OSX_IPHONE___GUI_SRC_OBJECTS)
@COND_TOOLKIT_QT@__GUI_SRC_OBJECTS =
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_1 = \
@ -7408,7 +7409,8 @@ COND_TOOLKIT_OSX_IPHONE___GUI_SRC_OBJECTS_1 = \
monolib_iphone_toolbar.o \
monolib_iphone_utils.o \
monolib_iphone_window.o \
monolib_cocoa_stdpaths.o
monolib_cocoa_stdpaths.o \
monolib_iphone_settings.o
@COND_TOOLKIT_OSX_IPHONE@__GUI_SRC_OBJECTS_1 = $(COND_TOOLKIT_OSX_IPHONE___GUI_SRC_OBJECTS_1)
@COND_TOOLKIT_QT@__GUI_SRC_OBJECTS_1 =
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_3 = \
@ -9556,7 +9558,8 @@ COND_TOOLKIT_OSX_IPHONE___GUI_SRC_OBJECTS_2 = \
coredll_iphone_toolbar.o \
coredll_iphone_utils.o \
coredll_iphone_window.o \
coredll_stdpaths.o
coredll_stdpaths.o \
coredll_iphone_settings.o
@COND_TOOLKIT_OSX_IPHONE@__GUI_SRC_OBJECTS_2 = $(COND_TOOLKIT_OSX_IPHONE___GUI_SRC_OBJECTS_2)
@COND_TOOLKIT_QT@__GUI_SRC_OBJECTS_2 =
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_5 = \
@ -11023,7 +11026,8 @@ COND_TOOLKIT_OSX_IPHONE___GUI_SRC_OBJECTS_3 = \
corelib_iphone_toolbar.o \
corelib_iphone_utils.o \
corelib_iphone_window.o \
corelib_stdpaths.o
corelib_stdpaths.o \
corelib_iphone_settings.o
@COND_TOOLKIT_OSX_IPHONE@__GUI_SRC_OBJECTS_3 = $(COND_TOOLKIT_OSX_IPHONE___GUI_SRC_OBJECTS_3)
@COND_TOOLKIT_QT@__GUI_SRC_OBJECTS_3 =
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_7 = \
@ -16503,6 +16507,9 @@ monodll_iphone_utils.o: $(srcdir)/src/osx/iphone/utils.mm $(MONODLL_ODEP)
monodll_iphone_window.o: $(srcdir)/src/osx/iphone/window.mm $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/iphone/window.mm
monodll_iphone_settings.o: $(srcdir)/src/osx/iphone/settings.mm $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/iphone/settings.mm
monodll_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp
@ -21321,6 +21328,9 @@ monolib_iphone_utils.o: $(srcdir)/src/osx/iphone/utils.mm $(MONOLIB_ODEP)
monolib_iphone_window.o: $(srcdir)/src/osx/iphone/window.mm $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/iphone/window.mm
monolib_iphone_settings.o: $(srcdir)/src/osx/iphone/settings.mm $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/iphone/settings.mm
monolib_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp
@ -26793,6 +26803,9 @@ coredll_iphone_window.o: $(srcdir)/src/osx/iphone/window.mm $(COREDLL_ODEP)
coredll_stdpaths.o: $(srcdir)/src/osx/cocoa/stdpaths.mm $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/stdpaths.mm
coredll_iphone_settings.o: $(srcdir)/src/osx/iphone/settings.mm $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/iphone/settings.mm
coredll_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp
@ -30180,6 +30193,9 @@ corelib_iphone_window.o: $(srcdir)/src/osx/iphone/window.mm $(CORELIB_ODEP)
corelib_stdpaths.o: $(srcdir)/src/osx/cocoa/stdpaths.mm $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/stdpaths.mm
corelib_iphone_settings.o: $(srcdir)/src/osx/iphone/settings.mm $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/iphone/settings.mm
corelib_univ_anybutton.o: $(srcdir)/src/univ/anybutton.cpp $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/univ/anybutton.cpp

View File

@ -2481,6 +2481,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/osx/iphone/utils.mm
src/osx/iphone/window.mm
src/osx/cocoa/stdpaths.mm
src/osx/iphone/settings.mm
</set>
<set var="OSX_IPHONE_HDR" hints="files">

View File

@ -2112,6 +2112,7 @@ OSX_IPHONE_SRC =
src/osx/iphone/msgdlg.mm
src/osx/iphone/nonownedwnd.mm
src/osx/iphone/scrolbar.mm
src/osx/iphone/settings.mm
src/osx/iphone/slider.mm
src/osx/iphone/stattext.mm
src/osx/iphone/textctrl.mm

View File

@ -141,6 +141,8 @@
23E9AF567E873B948EFEA180 /* gauge.mm in Sources */ = {isa = PBXBuildFile; fileRef = 98A7F0605AAC3D28A8C9F253 /* gauge.mm */; };
242E1D1A9BF331BA918134EC /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = 0964797530CF3FE7B8DB6242 /* pngwtran.c */; };
246B4FF96BA135258FE45F4F /* encconv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C269E9CA99DF3AE5B1BD6AFA /* encconv.cpp */; };
247B3B991C6C9731001ABFA2 /* utils_base.mm in Sources */ = {isa = PBXBuildFile; fileRef = 247B3B981C6C9731001ABFA2 /* utils_base.mm */; };
247B3B9B1C6C975B001ABFA2 /* settings.mm in Sources */ = {isa = PBXBuildFile; fileRef = 247B3B9A1C6C975B001ABFA2 /* settings.mm */; };
2480859662ED399799E120A5 /* pen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BA819575B5136B09FA8FEB1 /* pen.cpp */; };
249C9177B1A33EFEAB30F93F /* tipwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9E8BF36D3A7C309482CBA9EC /* tipwin.cpp */; };
24A5A71C79733E9CB913C5B7 /* LexPB.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 8744F2C80ECF375999195935 /* LexPB.cxx */; };
@ -238,7 +240,6 @@
427E6AF88CF73D799206E37D /* checkboxcmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FC2F076657431458896115A /* checkboxcmn.cpp */; };
42AC484FDD7D3E948CEA801C /* inflate.c in Sources */ = {isa = PBXBuildFile; fileRef = B5370A676AAC32419D7FDD87 /* inflate.c */; };
42ED9BAFD6E936849F1D36CB /* xtixml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4048A3523EC03409BD899BEF /* xtixml.cpp */; };
437519A6002A3A0FB2C9A8FC /* settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E6CC2B05353C3284B37B2DD7 /* settings.cpp */; };
438EAEA4B30C325C827F6197 /* xh_fontpicker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 87E609641B583666AB9D1D58 /* xh_fontpicker.cpp */; };
4442EA28B0B3373B9A2D0862 /* collheaderctrlg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92F377099B8B37F18C26716B /* collheaderctrlg.cpp */; };
447FEC72F3C234378CE28DE7 /* effects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 48D72D20DB1D3E1CA5ED112A /* effects.cpp */; };
@ -962,6 +963,8 @@
23FC98E2305230E2990471E3 /* wxcrt.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = wxcrt.cpp; path = ../../src/common/wxcrt.cpp; sourceTree = "<group>"; };
242BF97B558634A79322052C /* prntbase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = prntbase.cpp; path = ../../src/common/prntbase.cpp; sourceTree = "<group>"; };
24396D584D053948A3FF0DCD /* imagpng.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = imagpng.cpp; path = ../../src/common/imagpng.cpp; sourceTree = "<group>"; };
247B3B981C6C9731001ABFA2 /* utils_base.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = utils_base.mm; path = ../../src/osx/cocoa/utils_base.mm; sourceTree = "<group>"; };
247B3B9A1C6C975B001ABFA2 /* settings.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = settings.mm; path = ../../src/osx/iphone/settings.mm; sourceTree = "<group>"; };
24930711031D35288D28B04B /* choiccmn.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = choiccmn.cpp; path = ../../src/common/choiccmn.cpp; sourceTree = "<group>"; };
24BD2EF635673E819B8406CB /* LexRust.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LexRust.cxx; path = ../../src/stc/scintilla/lexers/LexRust.cxx; sourceTree = "<group>"; };
24DF23D67E693D999B875101 /* toolbkg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = toolbkg.cpp; path = ../../src/generic/toolbkg.cpp; sourceTree = "<group>"; };
@ -1612,7 +1615,6 @@
E5A9B63746753EDFB2EC48D3 /* xh_frame.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = xh_frame.cpp; path = ../../src/xrc/xh_frame.cpp; sourceTree = "<group>"; };
E685D81FB9FF3081B6C5C321 /* EditModel.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = EditModel.cxx; path = ../../src/stc/scintilla/src/EditModel.cxx; sourceTree = "<group>"; };
E6AB648BC5173104A96CAE66 /* xml.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = xml.cpp; path = ../../src/xml/xml.cpp; sourceTree = "<group>"; };
E6CC2B05353C3284B37B2DD7 /* settings.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = settings.cpp; path = ../../src/osx/carbon/settings.cpp; sourceTree = "<group>"; };
E72CF5F9C1E53BCFAA2BC253 /* KeyMap.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = KeyMap.cxx; path = ../../src/stc/scintilla/src/KeyMap.cxx; sourceTree = "<group>"; };
E72F0A2EE3DB34E193D8CCA7 /* LexLaTeX.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LexLaTeX.cxx; path = ../../src/stc/scintilla/lexers/LexLaTeX.cxx; sourceTree = "<group>"; };
E78CBF86AAE637CB982B2EC0 /* LexMarkdown.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LexMarkdown.cxx; path = ../../src/stc/scintilla/lexers/LexMarkdown.cxx; sourceTree = "<group>"; };
@ -2019,7 +2021,6 @@
A3BF8C9FF2D5314591329D0D /* toolbar.mm */,
789F45D14FF23E248FCFB5FA /* utils.mm */,
C94DC3402FAE3C4FA776DEEA /* window.mm */,
E6CC2B05353C3284B37B2DD7 /* settings.cpp */,
190409DF8A3C3D9580FBB8AA /* stdpaths.mm */,
A436B55DC44E3827A757A6D8 /* accelcmn.cpp */,
8555204EBA8930809B732842 /* accesscmn.cpp */,
@ -2647,6 +2648,8 @@
C9A305CEC03B3085B159B617 /* fs_mem.cpp */,
E968913A9A593B258BD8EACB /* msgout.cpp */,
4188821BBA833CCAA678B234 /* utilscmn.cpp */,
247B3B9A1C6C975B001ABFA2 /* settings.mm */,
247B3B981C6C9731001ABFA2 /* utils_base.mm */,
);
name = base;
sourceTree = "<group>";
@ -2804,7 +2807,9 @@
/* Begin PBXProject section */
19367367C9323490BB936F06 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = A66311F47C8832F6A58105B6 /* Build configuration list for PBXProject "wxiphone" */;
attributes = {
};
buildConfigurationList = A66311F47C8832F6A58105B6 /* Build configuration list for PBXProject "wxiPhone" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
@ -2921,6 +2926,7 @@
DAAFBED07FF8365B96D20B99 /* unichar.cpp in Sources */,
2E8440A2BDD53BE7B01547C2 /* uri.cpp in Sources */,
C425A172B0AB3EBD9AC9A590 /* ustring.cpp in Sources */,
247B3B991C6C9731001ABFA2 /* utils_base.mm in Sources */,
65E8A5F333D7336C816F0D0C /* variant.cpp in Sources */,
E53AFF04877D34C386D77380 /* wfstream.cpp in Sources */,
319EA32592DA3C74B86DDDFF /* wxcrt.cpp in Sources */,
@ -3066,7 +3072,6 @@
A53B8C3ED0D33A1D9AA8219A /* toolbar.mm in Sources */,
A1A7D793B034398B8696EF33 /* utils.mm in Sources */,
815AE3FED68330F4933AA16F /* window.mm in Sources */,
437519A6002A3A0FB2C9A8FC /* settings.cpp in Sources */,
DA71FBB9EFB2350ABB3CEC80 /* stdpaths.mm in Sources */,
3CDE2B6BF88D326189F069BD /* accelcmn.cpp in Sources */,
BDB8EF0E0DA03693BFB77EF7 /* accesscmn.cpp in Sources */,
@ -3492,6 +3497,7 @@
894D43C8F224394FB3171F26 /* jcapimin.c in Sources */,
743BB23211B336A6A0F26E57 /* jcapistd.c in Sources */,
CCE4ECA9CE883B008065C6FB /* jctrans.c in Sources */,
247B3B9B1C6C975B001ABFA2 /* settings.mm in Sources */,
ACD644CFA85A3B70A3E3B118 /* jcparam.c in Sources */,
76A83A293C9F33BCB7DFDE26 /* jdatadst.c in Sources */,
86003C8EB906304F9025F788 /* jcinit.c in Sources */,
@ -3743,7 +3749,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
A66311F47C8832F6A58105B6 /* Build configuration list for PBXProject "wxiphone" */ = {
A66311F47C8832F6A58105B6 /* Build configuration list for PBXProject "wxiPhone" */ = {
isa = XCConfigurationList;
buildConfigurations = (
55C93151F6053EBCBDD70DF9 /* Debug */,

View File

@ -217,6 +217,7 @@ wxMSW:
wxOSX/Cocoa:
- Make wxiOS (iPhone) port build and minimally work again (Tobias Taschner).
- Use more efficient FSEvents (10.7+) in wxFileSystemWatcher (Roberto Perpuly).
- Implement wxWindow::Disable() for non-native controls too (Steve Browne).
- Implement wxTopLevelWindow::EnableCloseButton() (John Roberts).

View File

@ -169,6 +169,14 @@ wxQt is a port of wxWidgets using Qt libraries. It requires Qt 5 or later.
For further information, please see the files in docs/qt in the distribution.
@section page_port_wxiOS wxiOS
wxiOS is a port of wxWidgets using Cocoa touch libraries for iOS. It is very
basic in it current form, but is included for further improvements and very
simple applications.
For further information, please see the files in docs/ios in the distribution.
@section page_port_nativedocs Native Toolkit Documentation
It's sometimes useful to interface directly with the underlying toolkit

View File

@ -48,7 +48,8 @@
<a href="motif/readme.txt">wxMotif</a>,
<a href="qt/readme.txt">wxQt</a>
<a href="x11/readme.txt">wxX11</a>,
<a href="univ/readme.txt">Univ</a>
<a href="univ/readme.txt">Univ</a>,
<a href="ios/readme.txt">wxiOS</a>
</li>
<li>Installation:
<a href="msw/install.txt">wxMSW</a>,

45
docs/ios/readme.txt Normal file
View File

@ -0,0 +1,45 @@
Welcome to wxWidgets for iOS
----------------------------
wxiOS is far from a full supported port, but can be used
as base for simple applications and future improvements.
It requires Xcode with iOS SDK 9.0 or later. Xcode is available
for free in the OS X app store.
More info about the wxWidgets project (including all the
other ports and version of wxWidgets) can be found at the
main wxWidgets homepage at:
https://www.wxwidgets.org/
To build wxiOS you should use Xcode to open the minimal samples
Xcode project file located at:
samples/minimal/minimal_iphone.xcodeproj
That project files includes wxiphone.xcodeproj so you just need
to hit run in order to see the minimal sample running in the
simulator.
The library can also be build via configure/make:
mkdir build_ios
cd build_ios
../configure --with-osx_iphone --enable-monolithic \
--with-macosx-version-min=8.0 --disable-shared \
--with-macosx-sdk=$(xcrun --sdk iphonesimulator --show-sdk-path)
make
Please send problems concerning installation, feature requests,
bug reports or comments to the wxWidgets users list. These can
be found at https://www.wxwidgets.org/support/mailing-lists/
wxWidgets doesn't come with any guarantee whatsoever. It
might crash your harddisk or destroy your monitor. It doesn't
claim to be suitable for any special or general purpose.
Regards,
The wxWidgets Team

View File

@ -164,7 +164,13 @@ MyFrame::MyFrame(const wxString& title)
// ... and attach this menu bar to the frame
SetMenuBar(menuBar);
#endif // wxUSE_MENUS
#else // !wxUSE_MENUS
// If menus are not available add a button to access the about box
wxSizer* sizer = new wxBoxSizer(wxHORIZONTAL);
wxButton* aboutBtn = new wxButton(this, wxID_ANY, "About...");
aboutBtn->Bind(wxEVT_BUTTON, &MyFrame::OnAbout, this);
sizer->Add(aboutBtn, wxSizerFlags().Center());
#endif // wxUSE_MENUS/!wxUSE_MENUS
#if wxUSE_STATUSBAR
// create a status bar just for fun (by default with 1 pane only)

View File

@ -22,10 +22,15 @@
#include "wx/osx/private.h"
#if (defined(__WXOSX_COCOA__) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_10) \
|| (defined(__WXOSX_IPHONE__) && defined(__IPHONE_8_0))
#define wxHAS_NSPROCESSINFO 1
#endif
// our OS version is the same in non GUI and GUI cases
wxOperatingSystemId wxGetOsVersion(int *majorVsn, int *minorVsn)
{
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_10
#ifdef wxHAS_NSPROCESSINFO
if ([NSProcessInfo instancesRespondToSelector:@selector(operatingSystemVersion)])
{
NSOperatingSystemVersion osVer = [NSProcessInfo processInfo].operatingSystemVersion;
@ -43,8 +48,13 @@ wxOperatingSystemId wxGetOsVersion(int *majorVsn, int *minorVsn)
// Deprecated Gestalt calls are required instead
wxGCC_WARNING_SUPPRESS(deprecated-declarations)
SInt32 maj, min;
#ifdef __WXOSX_IPHONE__
maj = 7;
min = 0;
#else
Gestalt(gestaltSystemVersionMajor, &maj);
Gestalt(gestaltSystemVersionMinor, &min);
#endif
wxGCC_WARNING_RESTORE()
if ( majorVsn != NULL )
@ -59,7 +69,7 @@ wxGCC_WARNING_RESTORE()
bool wxCheckOsVersion(int majorVsn, int minorVsn)
{
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_10
#ifdef wxHAS_NSPROCESSINFO
if ([NSProcessInfo instancesRespondToSelector:@selector(isOperatingSystemAtLeastVersion:)])
{
NSOperatingSystemVersion osVer;
@ -85,6 +95,7 @@ wxString wxGetOsDescription()
int majorVer, minorVer;
wxGetOsVersion(&majorVer, &minorVer);
#ifndef __WXOSX_IPHONE__
// Notice that neither the OS name itself nor the code names seem to be
// ever translated, OS X itself uses the English words even for the
// languages not using Roman alphabet.
@ -113,6 +124,10 @@ wxString wxGetOsDescription()
break;
};
}
#else
wxString osBrand = "iOS";
wxString osName;
#endif
wxString osDesc = osBrand;
if (!osName.empty())

View File

@ -80,6 +80,10 @@ wxGUIEventLoop::wxGUIEventLoop()
{
}
wxGUIEventLoop::~wxGUIEventLoop()
{
}
void wxGUIEventLoop::OSXDoRun()
{
if ( IsMain() )

250
src/osx/iphone/settings.mm Normal file
View File

@ -0,0 +1,250 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/osx/iphone/settings.mm
// Purpose: wxSettings
// Author: David Elliott
// Modified by: Tobias Taschner
// Created: 2005/01/11
// Copyright: (c) 2005 David Elliott
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
#include "wx/settings.h"
#ifndef WX_PRECOMP
#include "wx/utils.h"
#include "wx/gdicmn.h"
#endif
#include "wx/osx/core/private.h"
#include "UIKit/UIKit.h"
// ----------------------------------------------------------------------------
// wxSystemSettingsNative
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// colours
// ----------------------------------------------------------------------------
wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
{
wxColour resultColor;
#if wxOSX_USE_COCOA_OR_CARBON
ThemeBrush colorBrushID;
#endif
switch ( index )
{
case wxSYS_COLOUR_WINDOW:
resultColor = *wxWHITE;
break ;
case wxSYS_COLOUR_SCROLLBAR :
case wxSYS_COLOUR_BACKGROUND:
case wxSYS_COLOUR_ACTIVECAPTION:
case wxSYS_COLOUR_INACTIVECAPTION:
case wxSYS_COLOUR_MENU:
case wxSYS_COLOUR_WINDOWFRAME:
case wxSYS_COLOUR_ACTIVEBORDER:
case wxSYS_COLOUR_INACTIVEBORDER:
case wxSYS_COLOUR_BTNFACE:
case wxSYS_COLOUR_MENUBAR:
resultColor = wxColour( 0xBE, 0xBE, 0xBE ) ;
break ;
case wxSYS_COLOUR_LISTBOX :
resultColor = *wxWHITE ;
break ;
case wxSYS_COLOUR_BTNSHADOW:
resultColor = wxColour( 0xBE, 0xBE, 0xBE );
break ;
case wxSYS_COLOUR_BTNTEXT:
case wxSYS_COLOUR_MENUTEXT:
case wxSYS_COLOUR_WINDOWTEXT:
case wxSYS_COLOUR_CAPTIONTEXT:
case wxSYS_COLOUR_INFOTEXT:
case wxSYS_COLOUR_INACTIVECAPTIONTEXT:
case wxSYS_COLOUR_LISTBOXTEXT:
resultColor = *wxBLACK;
break ;
case wxSYS_COLOUR_HIGHLIGHT:
{
resultColor = wxColor( 0xCC, 0xCC, 0xFF );
}
break ;
case wxSYS_COLOUR_BTNHIGHLIGHT:
case wxSYS_COLOUR_GRAYTEXT:
resultColor = wxColor( 0xCC, 0xCC, 0xCC );
break ;
case wxSYS_COLOUR_3DDKSHADOW:
resultColor = wxColor( 0x44, 0x44, 0x44 );
break ;
case wxSYS_COLOUR_3DLIGHT:
resultColor = wxColor( 0xCC, 0xCC, 0xCC );
break ;
case wxSYS_COLOUR_HIGHLIGHTTEXT :
case wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT :
resultColor = *wxWHITE ;
break ;
case wxSYS_COLOUR_INFOBK :
// we don't have a way to detect tooltip color, so use the
// standard value used at least on 10.4:
resultColor = wxColour( 0xFF, 0xFF, 0xD3 ) ;
break ;
case wxSYS_COLOUR_APPWORKSPACE:
resultColor = wxColor( 0x80, 0x80, 0x80 ); ;
break ;
case wxSYS_COLOUR_HOTLIGHT:
case wxSYS_COLOUR_GRADIENTACTIVECAPTION:
case wxSYS_COLOUR_GRADIENTINACTIVECAPTION:
case wxSYS_COLOUR_MENUHILIGHT:
// TODO:
resultColor = *wxBLACK;
break ;
default:
resultColor = *wxWHITE;
break ;
}
return resultColor;
}
// ----------------------------------------------------------------------------
// fonts
// ----------------------------------------------------------------------------
wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
{
switch (index)
{
case wxSYS_ANSI_VAR_FONT :
case wxSYS_SYSTEM_FONT :
case wxSYS_DEVICE_DEFAULT_FONT :
case wxSYS_DEFAULT_GUI_FONT :
{
return *wxSMALL_FONT ;
} ;
break ;
case wxSYS_OEM_FIXED_FONT :
case wxSYS_ANSI_FIXED_FONT :
case wxSYS_SYSTEM_FIXED_FONT :
default :
{
return *wxNORMAL_FONT ;
} ;
break ;
}
return *wxNORMAL_FONT;
}
// ----------------------------------------------------------------------------
// system metrics/features
// ----------------------------------------------------------------------------
// Get a system metric, e.g. scrollbar size
int wxSystemSettingsNative::GetMetric(wxSystemMetric index, wxWindow *WXUNUSED(win))
{
int value;
switch ( index )
{
case wxSYS_MOUSE_BUTTONS:
return 2; // we emulate a two button mouse (ctrl + click = right button )
// TODO case wxSYS_BORDER_X:
// TODO case wxSYS_BORDER_Y:
// TODO case wxSYS_CURSOR_X:
// TODO case wxSYS_CURSOR_Y:
// TODO case wxSYS_DCLICK_X:
// TODO case wxSYS_DCLICK_Y:
// TODO case wxSYS_DRAG_X:
// TODO case wxSYS_DRAG_Y:
// TODO case wxSYS_EDGE_X:
// TODO case wxSYS_EDGE_Y:
case wxSYS_HSCROLL_ARROW_X:
return 16;
case wxSYS_HSCROLL_ARROW_Y:
return 16;
case wxSYS_HTHUMB_X:
return 16;
// TODO case wxSYS_ICON_X:
// TODO case wxSYS_ICON_Y:
// TODO case wxSYS_ICONSPACING_X:
// TODO case wxSYS_ICONSPACING_Y:
// TODO case wxSYS_WINDOWMIN_X:
// TODO case wxSYS_WINDOWMIN_Y:
case wxSYS_SCREEN_X:
wxDisplaySize(&value, NULL);
return value;
case wxSYS_SCREEN_Y:
wxDisplaySize(NULL, &value);
return value;
// TODO case wxSYS_FRAMESIZE_X:
// TODO case wxSYS_FRAMESIZE_Y:
// TODO case wxSYS_SMALLICON_X:
// TODO case wxSYS_SMALLICON_Y:
case wxSYS_HSCROLL_Y:
return 16;
case wxSYS_VSCROLL_X:
return 16;
case wxSYS_VSCROLL_ARROW_X:
return 16;
case wxSYS_VSCROLL_ARROW_Y:
return 16;
case wxSYS_VTHUMB_Y:
return 16;
// TODO case wxSYS_CAPTION_Y:
// TODO case wxSYS_MENU_Y:
// TODO case wxSYS_NETWORK_PRESENT:
case wxSYS_PENWINDOWS_PRESENT:
return 0;
// TODO case wxSYS_SHOW_SOUNDS:
case wxSYS_SWAP_BUTTONS:
return 0;
case wxSYS_DCLICK_MSEC:
// default on mac is 30 ticks, we shouldn't really use wxSYS_DCLICK_MSEC anyway
// but rather rely on the 'click-count' by the system delivered in a mouse event
return 500;
default:
return -1; // unsupported metric
}
return 0;
}
bool wxSystemSettingsNative::HasFeature(wxSystemFeature index)
{
switch (index)
{
case wxSYS_CAN_ICONIZE_FRAME:
case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
return true;
default:
return false;
}
}

View File

@ -317,48 +317,4 @@ wxBitmap wxWindowDCImpl::DoGetAsBitmap(const wxRect *subrect) const
#endif // wxUSE_GUI
// TODO move these into a BASE file
wxOperatingSystemId wxGetOsVersion(int *verMaj, int *verMin)
{
// get OS version
int major, minor;
wxString release = wxCFStringRef( wxCFRetain( [ [UIDevice currentDevice] systemVersion] ) ).AsString() ;
if ( release.empty() ||
// TODO use wx method
scanf(release.c_str(), wxT("%d.%d"), &major, &minor) != 2 )
{
// failed to get version string or unrecognized format
major =
minor = -1;
}
if ( verMaj )
*verMaj = major;
if ( verMin )
*verMin = minor;
return wxOS_MAC_OSX_DARWIN;
}
wxString wxGetOsDescription()
{
wxString release = wxCFStringRef( wxCFRetain([ [UIDevice currentDevice] systemName] )).AsString() ;
return release;
}
// FIXME: This duplicates the function in src/unix/utilsunx.cpp, we should just
// reuse it instead of there is no iOS-specific implementation of this.
bool wxCheckOsVersion(int majorVsn, int minorVsn)
{
int majorCur, minorCur;
wxGetOsVersion(&majorCur, &minorCur);
return majorCur > majorVsn || (majorCur == majorVsn && minorCur >= minorVsn);
}
#endif // wxOSX_USE_IPHONE