Merge pull request #245 from TcT2k/osx_cleanup

Minor OS X code cleanup
This commit is contained in:
VZ 2016-03-04 19:38:06 +01:00
commit 54392cd75f
18 changed files with 6 additions and 1966 deletions

View File

@ -13209,7 +13209,6 @@ COND_PLATFORM_MACOSX_1___OSX_COMMON_SRC_OBJECTS = \
monodll_carbon_gdiobj.o \
monodll_carbon_icon.o \
monodll_carbon_app.o \
monodll_carbon_combobox.o \
monodll_carbon_control.o \
monodll_carbon_dataobj.o \
monodll_carbon_dcclient.o \
@ -13354,7 +13353,6 @@ COND_PLATFORM_MACOSX_1___OSX_COMMON_SRC_OBJECTS_0 = \
monolib_carbon_gdiobj.o \
monolib_carbon_icon.o \
monolib_carbon_app.o \
monolib_carbon_combobox.o \
monolib_carbon_control.o \
monolib_carbon_dataobj.o \
monolib_carbon_dcclient.o \
@ -13499,7 +13497,6 @@ COND_PLATFORM_MACOSX_1___OSX_COMMON_SRC_OBJECTS_8 = \
coredll_carbon_gdiobj.o \
coredll_carbon_icon.o \
coredll_carbon_app.o \
coredll_carbon_combobox.o \
coredll_carbon_control.o \
coredll_carbon_dataobj.o \
coredll_carbon_dcclient.o \
@ -13629,7 +13626,6 @@ COND_PLATFORM_MACOSX_1___OSX_COMMON_SRC_OBJECTS_9 = \
corelib_carbon_gdiobj.o \
corelib_carbon_icon.o \
corelib_carbon_app.o \
corelib_carbon_combobox.o \
corelib_carbon_control.o \
corelib_carbon_dataobj.o \
corelib_carbon_dcclient.o \
@ -19314,12 +19310,6 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@monodll_carbon_app.o: $(srcdir)/src/osx/carbon/app.cpp $(MONODLL_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/carbon/app.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@monodll_carbon_combobox.o: $(srcdir)/src/osx/carbon/combobox.cpp $(MONODLL_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/carbon/combobox.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@monodll_carbon_combobox.o: $(srcdir)/src/osx/carbon/combobox.cpp $(MONODLL_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/carbon/combobox.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@monodll_carbon_control.o: $(srcdir)/src/osx/carbon/control.cpp $(MONODLL_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/carbon/control.cpp
@ -24141,12 +24131,6 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@monolib_carbon_app.o: $(srcdir)/src/osx/carbon/app.cpp $(MONOLIB_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/carbon/app.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@monolib_carbon_combobox.o: $(srcdir)/src/osx/carbon/combobox.cpp $(MONOLIB_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/carbon/combobox.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@monolib_carbon_combobox.o: $(srcdir)/src/osx/carbon/combobox.cpp $(MONOLIB_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/carbon/combobox.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@monolib_carbon_control.o: $(srcdir)/src/osx/carbon/control.cpp $(MONOLIB_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/carbon/control.cpp
@ -29022,12 +29006,6 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@coredll_carbon_app.o: $(srcdir)/src/osx/carbon/app.cpp $(COREDLL_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/carbon/app.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@coredll_carbon_combobox.o: $(srcdir)/src/osx/carbon/combobox.cpp $(COREDLL_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/carbon/combobox.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@coredll_carbon_combobox.o: $(srcdir)/src/osx/carbon/combobox.cpp $(COREDLL_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/carbon/combobox.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@coredll_carbon_control.o: $(srcdir)/src/osx/carbon/control.cpp $(COREDLL_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/osx/carbon/control.cpp
@ -32415,12 +32393,6 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@corelib_carbon_app.o: $(srcdir)/src/osx/carbon/app.cpp $(CORELIB_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/carbon/app.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@corelib_carbon_combobox.o: $(srcdir)/src/osx/carbon/combobox.cpp $(CORELIB_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/carbon/combobox.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@corelib_carbon_combobox.o: $(srcdir)/src/osx/carbon/combobox.cpp $(CORELIB_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_IPHONE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/carbon/combobox.cpp
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@corelib_carbon_control.o: $(srcdir)/src/osx/carbon/control.cpp $(CORELIB_ODEP)
@COND_PLATFORM_MACOSX_1_TOOLKIT_OSX_COCOA_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/osx/carbon/control.cpp

View File

@ -2275,7 +2275,6 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/osx/carbon/gdiobj.cpp
src/osx/carbon/icon.cpp
src/osx/carbon/app.cpp
src/osx/carbon/combobox.cpp
src/osx/carbon/control.cpp
src/osx/carbon/dataobj.cpp
src/osx/carbon/dcclient.cpp

View File

@ -2117,7 +2117,6 @@ OSX_COMMON_SRC =
src/osx/carbon/gdiobj.cpp
src/osx/carbon/icon.cpp
src/osx/carbon/app.cpp
src/osx/carbon/combobox.cpp
src/osx/carbon/control.cpp
src/osx/carbon/dataobj.cpp
src/osx/carbon/dcclient.cpp

View File

@ -2027,9 +2027,6 @@
BAFF04F1680F32DA988EB03D /* stockitem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B180290089B139F18B0C7BBA /* stockitem.cpp */; };
BAFF04F1680F32DA988EB03E /* stockitem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B180290089B139F18B0C7BBA /* stockitem.cpp */; };
BAFF04F1680F32DA988EB03F /* stockitem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B180290089B139F18B0C7BBA /* stockitem.cpp */; };
BB31D65BA1253A1CB64CE9D2 /* combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A3F26F539473705AA82411D /* combobox.cpp */; };
BB31D65BA1253A1CB64CE9D3 /* combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A3F26F539473705AA82411D /* combobox.cpp */; };
BB31D65BA1253A1CB64CE9D4 /* combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A3F26F539473705AA82411D /* combobox.cpp */; };
BB6FE851028C3DE7A070C213 /* convauto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 20B922D61CDB3CCEB59A5194 /* convauto.cpp */; };
BB6FE851028C3DE7A070C214 /* convauto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 20B922D61CDB3CCEB59A5194 /* convauto.cpp */; };
BB6FE851028C3DE7A070C215 /* convauto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 20B922D61CDB3CCEB59A5194 /* convauto.cpp */; };
@ -4272,7 +4269,6 @@
7A1CE0B28CB73F90AE92B5AB /* richtooltipcmn.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = richtooltipcmn.cpp; path = ../../src/common/richtooltipcmn.cpp; sourceTree = "<group>"; };
7A24E9101688368296C21EBE /* gzclose.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = gzclose.c; path = ../../src/zlib/gzclose.c; sourceTree = "<group>"; };
7A34C5BBBA543DC0A50DE1B6 /* event.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = event.cpp; path = ../../src/common/event.cpp; sourceTree = "<group>"; };
7A3F26F539473705AA82411D /* combobox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = combobox.cpp; path = ../../src/osx/carbon/combobox.cpp; sourceTree = "<group>"; };
7AF8F8A78A5130DCB4D46729 /* LexCmake.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LexCmake.cxx; path = ../../src/stc/scintilla/lexers/LexCmake.cxx; sourceTree = "<group>"; };
7B389A14D6BF3AFD8CCE0807 /* protocol.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = protocol.cpp; path = ../../src/common/protocol.cpp; sourceTree = "<group>"; };
7BA6ADD758693BD180D3275B /* treebase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = treebase.cpp; path = ../../src/common/treebase.cpp; sourceTree = "<group>"; };
@ -5326,7 +5322,6 @@
377056CEB1FC3EEB8526E7A6 /* gdiobj.cpp */,
F5DAF1F49F0F3F41A427A21D /* icon.cpp */,
757B31FCCA1F381C95B30DF8 /* app.cpp */,
7A3F26F539473705AA82411D /* combobox.cpp */,
12363D1F50FE301DAEE7F04A /* control.cpp */,
271B4B77622B3411A7BF6634 /* dataobj.cpp */,
B17772732159304AA7312D72 /* dcclient.cpp */,
@ -7527,7 +7522,6 @@
692FCCABFB963696AFC1E124 /* gdiobj.cpp in Sources */,
01D4C5F2147F3942A7CE91AC /* icon.cpp in Sources */,
B0E94A59C83637C09FAAE71E /* app.cpp in Sources */,
BB31D65BA1253A1CB64CE9D4 /* combobox.cpp in Sources */,
EB52C6A91594381393294500 /* control.cpp in Sources */,
45AB45C6B24A3983B22E56A7 /* dataobj.cpp in Sources */,
D088E7DDE38C31DC9C9B3419 /* dcclient.cpp in Sources */,
@ -8201,7 +8195,6 @@
692FCCABFB963696AFC1E123 /* gdiobj.cpp in Sources */,
01D4C5F2147F3942A7CE91AB /* icon.cpp in Sources */,
B0E94A59C83637C09FAAE71D /* app.cpp in Sources */,
BB31D65BA1253A1CB64CE9D3 /* combobox.cpp in Sources */,
EB52C6A915943813932944FF /* control.cpp in Sources */,
45AB45C6B24A3983B22E56A6 /* dataobj.cpp in Sources */,
D088E7DDE38C31DC9C9B3418 /* dcclient.cpp in Sources */,
@ -9410,7 +9403,6 @@
692FCCABFB963696AFC1E122 /* gdiobj.cpp in Sources */,
01D4C5F2147F3942A7CE91AA /* icon.cpp in Sources */,
B0E94A59C83637C09FAAE71C /* app.cpp in Sources */,
BB31D65BA1253A1CB64CE9D2 /* combobox.cpp in Sources */,
EB52C6A915943813932944FE /* control.cpp in Sources */,
45AB45C6B24A3983B22E56A5 /* dataobj.cpp in Sources */,
D088E7DDE38C31DC9C9B3417 /* dcclient.cpp in Sources */,

View File

@ -605,7 +605,6 @@
BAA75384DA82370298672333 /* helpctrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42E433D1700631A8907B8227 /* helpctrl.cpp */; };
BAAB6B1D80A33843A8436B10 /* appunix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B40E0F6AA0273ACD9BDEAD72 /* appunix.cpp */; };
BAFF04F1680F32DA988EB03D /* stockitem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B180290089B139F18B0C7BBA /* stockitem.cpp */; };
BB31D65BA1253A1CB64CE9D2 /* combobox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A3F26F539473705AA82411D /* combobox.cpp */; };
BB6FE851028C3DE7A070C213 /* convauto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 20B922D61CDB3CCEB59A5194 /* convauto.cpp */; };
BBAABF3C693E37D3B0FF2502 /* colrdlgg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 66AC0EA493AB3B6A86DAE174 /* colrdlgg.cpp */; };
BCD81FD3D1EC305F801E1C1B /* sckipc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1F6E23CCDC1932BC985EFBD2 /* sckipc.cpp */; };
@ -1246,7 +1245,6 @@
7A1CE0B28CB73F90AE92B5AB /* richtooltipcmn.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = richtooltipcmn.cpp; path = ../../src/common/richtooltipcmn.cpp; sourceTree = "<group>"; };
7A24E9101688368296C21EBE /* gzclose.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = gzclose.c; path = ../../src/zlib/gzclose.c; sourceTree = "<group>"; };
7A34C5BBBA543DC0A50DE1B6 /* event.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = event.cpp; path = ../../src/common/event.cpp; sourceTree = "<group>"; };
7A3F26F539473705AA82411D /* combobox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = combobox.cpp; path = ../../src/osx/carbon/combobox.cpp; sourceTree = "<group>"; };
7AF8F8A78A5130DCB4D46729 /* LexCmake.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LexCmake.cxx; path = ../../src/stc/scintilla/lexers/LexCmake.cxx; sourceTree = "<group>"; };
7B389A14D6BF3AFD8CCE0807 /* protocol.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = protocol.cpp; path = ../../src/common/protocol.cpp; sourceTree = "<group>"; };
7BA6ADD758693BD180D3275B /* treebase.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = treebase.cpp; path = ../../src/common/treebase.cpp; sourceTree = "<group>"; };
@ -1972,7 +1970,6 @@
377056CEB1FC3EEB8526E7A6 /* gdiobj.cpp */,
F5DAF1F49F0F3F41A427A21D /* icon.cpp */,
757B31FCCA1F381C95B30DF8 /* app.cpp */,
7A3F26F539473705AA82411D /* combobox.cpp */,
12363D1F50FE301DAEE7F04A /* control.cpp */,
271B4B77622B3411A7BF6634 /* dataobj.cpp */,
B17772732159304AA7312D72 /* dcclient.cpp */,
@ -3023,7 +3020,6 @@
692FCCABFB963696AFC1E122 /* gdiobj.cpp in Sources */,
01D4C5F2147F3942A7CE91AA /* icon.cpp in Sources */,
B0E94A59C83637C09FAAE71C /* app.cpp in Sources */,
BB31D65BA1253A1CB64CE9D2 /* combobox.cpp in Sources */,
EB52C6A915943813932944FE /* control.cpp in Sources */,
45AB45C6B24A3983B22E56A5 /* dataobj.cpp in Sources */,
D088E7DDE38C31DC9C9B3417 /* dcclient.cpp in Sources */,

View File

@ -73,7 +73,6 @@ public:
virtual wxRendererNative *CreateRenderer() = 0;
// wxStandardPaths object is normally the same for wxBase and wxGUI
// except in the case of wxMac and wxCocoa
virtual wxStandardPaths& GetStandardPaths();

View File

@ -161,13 +161,6 @@ protected:
WXGLPixelFormat m_glFormat;
wxGLAttributes m_GLAttrs;
#if wxOSX_USE_CARBON
bool m_macCanvasIsShown,
m_needsUpdate;
WXGLContext m_dummyContext;
GLint m_bufferName;
#endif
wxDECLARE_EVENT_TABLE();
wxDECLARE_CLASS(wxGLCanvas);
};

View File

@ -58,9 +58,6 @@ public:
virtual void MutexGuiLeave() wxOVERRIDE;
#endif
#if defined(__WXMAC__) && wxUSE_STDPATHS
virtual wxStandardPaths& GetStandardPaths() wxOVERRIDE;
#endif
wxPortId GetToolkitVersion(int *majVer = NULL,
int *minVer = NULL,
int *microVer = NULL) const wxOVERRIDE;

View File

@ -1 +0,0 @@
/* not needed anymore */

View File

@ -1,7 +0,0 @@
// carbon for 9
data 'carb' (0) {
$"0000" /* .. */
};
// the plist resource should only be included in the application
// since it contains the bundle information and should not be duplicated

View File

@ -1,668 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/osx/carbon/combobox.cpp
// Purpose: wxComboBox class
// Author: Stefan Csomor, Dan "Bud" Keith (composite combobox)
// Modified by:
// Created: 1998-01-01
// Copyright: (c) Stefan Csomor
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
#if wxUSE_COMBOBOX && wxOSX_USE_CARBON
#include "wx/combobox.h"
#ifndef WX_PRECOMP
#include "wx/button.h"
#include "wx/menu.h"
#include "wx/containr.h"
#include "wx/toplevel.h"
#include "wx/textctrl.h"
#endif
#include "wx/osx/private.h"
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
// the margin between the text control and the choice
// margin should be bigger on OS X due to blue highlight
// around text control.
static const wxCoord MARGIN = 4;
// this is the border a focus rect on OSX is needing
static const int TEXTFOCUSBORDER = 3 ;
// ----------------------------------------------------------------------------
// wxComboBoxText: text control forwards events to combobox
// ----------------------------------------------------------------------------
class wxComboBoxText : public wxTextCtrl
{
public:
wxComboBoxText( wxComboBox * cb )
: wxTextCtrl( cb , 1 )
{
m_cb = cb;
}
protected:
void OnChar( wxKeyEvent& event )
{
// Allows processing the tab key to go to the next control
if (event.GetKeyCode() == WXK_TAB)
{
wxNavigationKeyEvent NavEvent;
NavEvent.SetEventObject(this);
NavEvent.SetDirection(!event.ShiftDown());
NavEvent.SetWindowChange(false);
// Get the parent of the combo and have it process the navigation?
if (m_cb->GetParent()->HandleWindowEvent(NavEvent))
return;
}
// send the event to the combobox class in case the user has bound EVT_CHAR
wxKeyEvent kevt(event);
kevt.SetEventObject(m_cb);
if (m_cb->HandleWindowEvent(kevt))
// If the event was handled and not skipped then we're done
return;
if ( event.GetKeyCode() == WXK_RETURN )
{
wxCommandEvent event(wxEVT_TEXT_ENTER, m_cb->GetId());
event.SetString( GetValue() );
event.SetInt( m_cb->GetSelection() );
event.SetEventObject( m_cb );
// This will invoke the dialog default action,
// such as the clicking the default button.
if (!m_cb->HandleWindowEvent( event ))
{
wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow);
if ( tlw && tlw->GetDefaultItem() )
{
wxButton *def = wxDynamicCast(tlw->GetDefaultItem(), wxButton);
if ( def && def->IsEnabled() )
{
wxCommandEvent event( wxEVT_BUTTON, def->GetId() );
event.SetEventObject(def);
def->Command(event);
}
}
return;
}
}
event.Skip();
}
void OnKeyUp( wxKeyEvent& event )
{
event.SetEventObject(m_cb);
event.SetId(m_cb->GetId());
if (! m_cb->HandleWindowEvent(event))
event.Skip();
}
void OnKeyDown( wxKeyEvent& event )
{
event.SetEventObject(m_cb);
event.SetId(m_cb->GetId());
if (! m_cb->HandleWindowEvent(event))
event.Skip();
}
void OnText( wxCommandEvent& event )
{
event.SetEventObject(m_cb);
event.SetId(m_cb->GetId());
if (! m_cb->HandleWindowEvent(event))
event.Skip();
}
void OnFocus( wxFocusEvent& event )
{
// in case the textcontrol gets the focus we propagate
// it to the parent's handlers.
wxFocusEvent evt2(event.GetEventType(),m_cb->GetId());
evt2.SetEventObject(m_cb);
m_cb->GetEventHandler()->ProcessEvent(evt2);
event.Skip();
}
private:
wxComboBox *m_cb;
wxDECLARE_EVENT_TABLE();
};
wxBEGIN_EVENT_TABLE(wxComboBoxText, wxTextCtrl)
EVT_KEY_DOWN(wxComboBoxText::OnKeyDown)
EVT_CHAR(wxComboBoxText::OnChar)
EVT_KEY_UP(wxComboBoxText::OnKeyUp)
EVT_SET_FOCUS(wxComboBoxText::OnFocus)
EVT_KILL_FOCUS(wxComboBoxText::OnFocus)
EVT_TEXT(wxID_ANY, wxComboBoxText::OnText)
wxEND_EVENT_TABLE()
class wxComboBoxChoice : public wxChoice
{
public:
wxComboBoxChoice( wxComboBox *cb, int style )
: wxChoice( cb , 1 , wxDefaultPosition , wxDefaultSize , 0 , NULL , style & (wxCB_SORT) )
{
m_cb = cb;
}
int GetPopupWidth() const
{
switch ( GetWindowVariant() )
{
case wxWINDOW_VARIANT_NORMAL :
case wxWINDOW_VARIANT_LARGE :
return 24 ;
default :
return 21 ;
}
}
protected:
void OnChoice( wxCommandEvent& e )
{
wxString s = e.GetString();
m_cb->DelegateChoice( s );
wxCommandEvent event2(wxEVT_COMBOBOX, m_cb->GetId() );
event2.SetInt(m_cb->GetSelection());
event2.SetEventObject(m_cb);
event2.SetString(m_cb->GetStringSelection());
m_cb->ProcessCommand(event2);
// For consistency with MSW and GTK, also send a text updated event
// After all, the text is updated when a selection is made
wxCommandEvent TextEvent( wxEVT_TEXT, m_cb->GetId() );
TextEvent.SetString( m_cb->GetStringSelection() );
TextEvent.SetEventObject( m_cb );
m_cb->ProcessCommand( TextEvent );
}
virtual wxSize DoGetBestSize() const
{
wxSize sz = wxChoice::DoGetBestSize() ;
if (! m_cb->HasFlag(wxCB_READONLY) )
sz.x = GetPopupWidth() ;
return sz ;
}
private:
wxComboBox *m_cb;
friend class wxComboBox;
wxDECLARE_EVENT_TABLE();
};
wxBEGIN_EVENT_TABLE(wxComboBoxChoice, wxChoice)
EVT_CHOICE(wxID_ANY, wxComboBoxChoice::OnChoice)
wxEND_EVENT_TABLE()
wxComboBox::~wxComboBox()
{
// delete the controls now, don't leave them alive even though they would
// still be eventually deleted by our parent - but it will be too late, the
// user code expects them to be gone now
wxDELETE(m_text);
wxDELETE(m_choice);
}
// ----------------------------------------------------------------------------
// geometry
// ----------------------------------------------------------------------------
wxSize wxComboBox::DoGetBestSize() const
{
if (!m_choice && !m_text)
return GetSize();
wxSize size = m_choice->GetBestSize();
if ( m_text != NULL )
{
wxSize sizeText = m_text->GetBestSize();
if (sizeText.y + 2 * TEXTFOCUSBORDER > size.y)
size.y = sizeText.y + 2 * TEXTFOCUSBORDER;
size.x = m_choice->GetPopupWidth() + sizeText.x + MARGIN;
size.x += TEXTFOCUSBORDER ;
}
else
{
// clipping is too tight
size.y += 1 ;
}
return size;
}
void wxComboBox::DoMoveWindow(int x, int y, int width, int height)
{
wxControl::DoMoveWindow( x, y, width , height );
if ( m_text == NULL )
{
// we might not be fully constructed yet, therefore watch out...
if ( m_choice )
m_choice->SetSize(0, 0 , width, -1);
}
else
{
wxCoord wText = width - m_choice->GetPopupWidth() - MARGIN;
m_text->SetSize(TEXTFOCUSBORDER, TEXTFOCUSBORDER, wText, -1);
wxSize tSize = m_text->GetSize();
wxSize cSize = m_choice->GetSize();
int yOffset = ( tSize.y + 2 * TEXTFOCUSBORDER - cSize.y ) / 2;
// put it at an inset of 1 to have outer area shadows drawn as well
m_choice->SetSize(TEXTFOCUSBORDER + wText + MARGIN - 1 , yOffset, m_choice->GetPopupWidth() , -1);
}
}
// ----------------------------------------------------------------------------
// operations forwarded to the subcontrols
// ----------------------------------------------------------------------------
bool wxComboBox::Enable(bool enable)
{
if ( !wxControl::Enable(enable) )
return false;
if (m_text)
m_text->Enable(enable);
return true;
}
bool wxComboBox::Show(bool show)
{
if ( !wxControl::Show(show) )
return false;
return true;
}
void wxComboBox::DelegateTextChanged( const wxString& value )
{
SetStringSelection( value );
}
void wxComboBox::DelegateChoice( const wxString& value )
{
SetStringSelection( value );
}
bool wxComboBox::Create(wxWindow *parent,
wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
const wxArrayString& choices,
long style,
const wxValidator& validator,
const wxString& name)
{
if ( !Create( parent, id, value, pos, size, 0, NULL,
style, validator, name ) )
return false;
Append(choices);
return true;
}
bool wxComboBox::Create(wxWindow *parent,
wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
int n,
const wxString choices[],
long style,
const wxValidator& validator,
const wxString& name)
{
if ( !wxControl::Create(parent, id, wxDefaultPosition, wxDefaultSize, style ,
validator, name) )
{
return false;
}
wxSize csize = size;
if ( style & wxCB_READONLY )
{
m_text = NULL;
}
else
{
m_text = new wxComboBoxText(this);
if ( size.y == -1 )
{
csize.y = m_text->GetSize().y ;
csize.y += 2 * TEXTFOCUSBORDER ;
}
}
m_choice = new wxComboBoxChoice(this, style );
DoSetSize(pos.x, pos.y, csize.x, csize.y);
Append( n, choices );
// Needed because it is a wxControlWithItems
SetInitialSize(size);
SetStringSelection(value);
return true;
}
void wxComboBox::EnableTextChangedEvents(bool enable)
{
if ( m_text )
m_text->ForwardEnableTextChangedEvents(enable);
}
wxString wxComboBox::DoGetValue() const
{
wxCHECK_MSG( m_text, wxString(), "can't be called for read-only combobox" );
return m_text->GetValue();
}
wxString wxComboBox::GetValue() const
{
wxString result;
if ( m_text == NULL )
result = m_choice->GetString( m_choice->GetSelection() );
else
result = m_text->GetValue();
return result;
}
unsigned int wxComboBox::GetCount() const
{
return m_choice->GetCount() ;
}
void wxComboBox::SetValue(const wxString& value)
{
if ( HasFlag(wxCB_READONLY) )
SetStringSelection( value ) ;
else
m_text->SetValue( value );
}
void wxComboBox::WriteText(const wxString& text)
{
m_text->WriteText(text);
}
void wxComboBox::GetSelection(long *from, long *to) const
{
m_text->GetSelection(from, to);
}
// Clipboard operations
void wxComboBox::Copy()
{
if ( m_text != NULL )
m_text->Copy();
}
void wxComboBox::Cut()
{
if ( m_text != NULL )
m_text->Cut();
}
void wxComboBox::Paste()
{
if ( m_text != NULL )
m_text->Paste();
}
void wxComboBox::SetEditable(bool editable)
{
if ( ( m_text == NULL ) && editable )
{
m_text = new wxComboBoxText( this );
}
else if ( !editable )
{
wxDELETE(m_text);
}
int currentX, currentY;
GetPosition( &currentX, &currentY );
int currentW, currentH;
GetSize( &currentW, &currentH );
DoMoveWindow( currentX, currentY, currentW, currentH );
}
void wxComboBox::SetInsertionPoint(long pos)
{
if ( m_text )
m_text->SetInsertionPoint(pos);
}
void wxComboBox::SetInsertionPointEnd()
{
if ( m_text )
m_text->SetInsertionPointEnd();
}
long wxComboBox::GetInsertionPoint() const
{
if ( m_text )
return m_text->GetInsertionPoint();
return 0;
}
wxTextPos wxComboBox::GetLastPosition() const
{
if ( m_text )
return m_text->GetLastPosition();
return 0;
}
void wxComboBox::Replace(long from, long to, const wxString& value)
{
if ( m_text )
m_text->Replace(from,to,value);
}
void wxComboBox::Remove(long from, long to)
{
if ( m_text )
m_text->Remove(from,to);
}
void wxComboBox::SetSelection(long from, long to)
{
if ( m_text )
m_text->SetSelection(from,to);
}
int wxComboBox::DoInsertItems(const wxArrayStringsAdapter& items,
unsigned int pos,
void **clientData,
wxClientDataType type)
{
return m_choice->DoInsertItems(items, pos, clientData, type);
}
void wxComboBox::DoSetItemClientData(unsigned int n, void* clientData)
{
return m_choice->DoSetItemClientData( n , clientData ) ;
}
void* wxComboBox::DoGetItemClientData(unsigned int n) const
{
return m_choice->DoGetItemClientData( n ) ;
}
wxClientDataType wxComboBox::GetClientDataType() const
{
return m_choice->GetClientDataType();
}
void wxComboBox::SetClientDataType(wxClientDataType clientDataItemsType)
{
m_choice->SetClientDataType(clientDataItemsType);
}
void wxComboBox::DoDeleteOneItem(unsigned int n)
{
m_choice->DoDeleteOneItem( n );
}
void wxComboBox::DoClear()
{
m_choice->DoClear();
}
int wxComboBox::GetSelection() const
{
return m_choice->GetSelection();
}
void wxComboBox::SetSelection(int n)
{
m_choice->SetSelection( n );
if ( m_text != NULL )
m_text->SetValue(n != wxNOT_FOUND ? GetString(n) : wxString(wxEmptyString));
}
int wxComboBox::FindString(const wxString& s, bool bCase) const
{
return m_choice->FindString( s, bCase );
}
wxString wxComboBox::GetString(unsigned int n) const
{
return m_choice->GetString( n );
}
wxString wxComboBox::GetStringSelection() const
{
int sel = GetSelection();
if (sel != wxNOT_FOUND)
return wxString(this->GetString((unsigned int)sel));
else
return wxEmptyString;
}
void wxComboBox::SetString(unsigned int n, const wxString& s)
{
m_choice->SetString( n , s );
}
bool wxComboBox::IsEditable() const
{
return m_text != NULL && !HasFlag(wxCB_READONLY);
}
void wxComboBox::Undo()
{
if (m_text != NULL)
m_text->Undo();
}
void wxComboBox::Redo()
{
if (m_text != NULL)
m_text->Redo();
}
void wxComboBox::SelectAll()
{
if (m_text != NULL)
m_text->SelectAll();
}
bool wxComboBox::CanCopy() const
{
if (m_text != NULL)
return m_text->CanCopy();
else
return false;
}
bool wxComboBox::CanCut() const
{
if (m_text != NULL)
return m_text->CanCut();
else
return false;
}
bool wxComboBox::CanPaste() const
{
if (m_text != NULL)
return m_text->CanPaste();
else
return false;
}
bool wxComboBox::CanUndo() const
{
if (m_text != NULL)
return m_text->CanUndo();
else
return false;
}
bool wxComboBox::CanRedo() const
{
if (m_text != NULL)
return m_text->CanRedo();
else
return false;
}
bool wxComboBox::OSXHandleClicked( double WXUNUSED(timestampsec) )
{
/*
For consistency with other platforms, clicking in the text area does not constitute a selection
wxCommandEvent event(wxEVT_COMBOBOX, m_windowId );
event.SetInt(GetSelection());
event.SetEventObject(this);
event.SetString(GetStringSelection());
ProcessCommand(event);
*/
return true ;
}
wxTextWidgetImpl* wxComboBox::GetTextPeer() const
{
if (m_text)
return m_text->GetTextPeer();
return NULL;
}
#endif // wxUSE_COMBOBOX && wxOSX_USE_CARBON

View File

@ -1,783 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/osx/carbon/combobxc.cpp
// Purpose: wxComboBox class using HIView ComboBox
// Author: Stefan Csomor
// Modified by:
// Created: 1998-01-01
// Copyright: (c) Stefan Csomor
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
#include "wx/combobox.h"
#ifndef WX_PRECOMP
#include "wx/button.h"
#include "wx/menu.h"
#endif
#include "wx/osx/uma.h"
#if TARGET_API_MAC_OSX
#ifndef __HIVIEW__
#include <HIToolbox/HIView.h>
#endif
#endif
#if TARGET_API_MAC_OSX
#define USE_HICOMBOBOX 1 //use hi combobox define
#else
#define USE_HICOMBOBOX 0
#endif
static int nextPopUpMenuId = 1000;
MenuHandle NewUniqueMenu()
{
MenuHandle handle = NewMenu( nextPopUpMenuId , "\pMenu" );
nextPopUpMenuId++;
return handle;
}
#if USE_HICOMBOBOX
static const EventTypeSpec eventList[] =
{
{ kEventClassTextField , kEventTextAccepted } ,
};
static pascal OSStatus wxMacComboBoxEventHandler( EventHandlerCallRef handler , EventRef event , void *data )
{
OSStatus result = eventNotHandledErr;
wxComboBox* cb = (wxComboBox*) data;
wxMacCarbonEvent cEvent( event );
switch( cEvent.GetClass() )
{
case kEventClassTextField :
switch( cEvent.GetKind() )
{
case kEventTextAccepted :
{
wxCommandEvent event( wxEVT_COMBOBOX, cb->GetId() );
event.SetInt( cb->GetSelection() );
event.SetString( cb->GetStringSelection() );
event.SetEventObject( cb );
cb->HandleWindowEvent( event );
}
break;
default :
break;
}
break;
default :
break;
}
return result;
}
DEFINE_ONE_SHOT_HANDLER_GETTER( wxMacComboBoxEventHandler )
#endif
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
// the margin between the text control and the choice
static const wxCoord MARGIN = 2;
#if TARGET_API_MAC_OSX
static const int POPUPWIDTH = 24;
#else
static const int POPUPWIDTH = 18;
#endif
static const int POPUPHEIGHT = 23;
// ----------------------------------------------------------------------------
// wxComboBoxText: text control forwards events to combobox
// ----------------------------------------------------------------------------
class wxComboBoxText : public wxTextCtrl
{
public:
wxComboBoxText( wxComboBox * cb )
: wxTextCtrl( cb , 1 )
{
m_cb = cb;
}
protected:
void OnChar( wxKeyEvent& event )
{
if ( event.GetKeyCode() == WXK_RETURN )
{
wxString value = GetValue();
if ( m_cb->GetCount() == 0 )
{
// make Enter generate "selected" event if there is only one item
// in the combobox - without it, it's impossible to select it at
// all!
wxCommandEvent event( wxEVT_COMBOBOX, m_cb->GetId() );
event.SetInt( 0 );
event.SetString( value );
event.SetEventObject( m_cb );
m_cb->HandleWindowEvent( event );
}
else
{
// add the item to the list if it's not there yet
if ( m_cb->FindString(value) == wxNOT_FOUND )
{
m_cb->Append(value);
m_cb->SetStringSelection(value);
// and generate the selected event for it
wxCommandEvent event( wxEVT_COMBOBOX, m_cb->GetId() );
event.SetInt( m_cb->GetCount() - 1 );
event.SetString( value );
event.SetEventObject( m_cb );
m_cb->HandleWindowEvent( event );
}
// This will invoke the dialog default action, such
// as the clicking the default button.
wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow);
if ( tlw && tlw->GetDefaultItem() )
{
wxButton *def = wxDynamicCast(tlw->GetDefaultItem(), wxButton);
if ( def && def->IsEnabled() )
{
wxCommandEvent event(wxEVT_BUTTON, def->GetId() );
event.SetEventObject(def);
def->Command(event);
return;
}
}
return;
}
}
event.Skip();
}
private:
wxComboBox *m_cb;
wxDECLARE_EVENT_TABLE();
};
wxBEGIN_EVENT_TABLE(wxComboBoxText, wxTextCtrl)
EVT_CHAR( wxComboBoxText::OnChar)
wxEND_EVENT_TABLE()
class wxComboBoxChoice : public wxChoice
{
public:
wxComboBoxChoice(wxComboBox *cb, int style)
: wxChoice( cb , 1 )
{
m_cb = cb;
}
protected:
void OnChoice( wxCommandEvent& e )
{
wxString s = e.GetString();
m_cb->DelegateChoice( s );
wxCommandEvent event2(wxEVT_COMBOBOX, m_cb->GetId() );
event2.SetInt(m_cb->GetSelection());
event2.SetEventObject(m_cb);
event2.SetString(m_cb->GetStringSelection());
m_cb->ProcessCommand(event2);
}
virtual wxSize DoGetBestSize() const
{
wxSize sz = wxChoice::DoGetBestSize();
sz.x = POPUPWIDTH;
return sz;
}
private:
wxComboBox *m_cb;
wxDECLARE_EVENT_TABLE();
};
wxBEGIN_EVENT_TABLE(wxComboBoxChoice, wxChoice)
EVT_CHOICE(wxID_ANY, wxComboBoxChoice::OnChoice)
wxEND_EVENT_TABLE()
wxComboBox::~wxComboBox()
{
// delete the controls now, don't leave them alive even though they would
// still be eventually deleted by our parent - but it will be too late, the
// user code expects them to be gone now
wxDELETE( m_text );
wxDELETE( m_choice );
}
// ----------------------------------------------------------------------------
// geometry
// ----------------------------------------------------------------------------
wxSize wxComboBox::DoGetBestSize() const
{
#if USE_HICOMBOBOX
return wxControl::DoGetBestSize();
#else
wxSize size = m_choice->GetBestSize();
if ( m_text != NULL )
{
wxSize sizeText = m_text->GetBestSize();
size.x = POPUPWIDTH + sizeText.x + MARGIN;
}
return size;
#endif
}
void wxComboBox::DoMoveWindow(int x, int y, int width, int height) {
#if USE_HICOMBOBOX
wxControl::DoMoveWindow(x, y, width, height);
#else
height = POPUPHEIGHT;
wxControl::DoMoveWindow(x, y, width, height);
if ( m_text == NULL )
{
// we might not be fully constructed yet, therefore watch out...
if ( m_choice )
m_choice->SetSize(0, 0 , width, wxDefaultCoord);
}
else
{
wxCoord wText = width - POPUPWIDTH - MARGIN;
m_text->SetSize(0, 0, wText, height);
m_choice->SetSize(0 + wText + MARGIN, 0, POPUPWIDTH, wxDefaultCoord);
}
#endif
}
// ----------------------------------------------------------------------------
// operations forwarded to the subcontrols
// ----------------------------------------------------------------------------
bool wxComboBox::Enable(bool enable)
{
if ( !wxControl::Enable(enable) )
return false;
return true;
}
bool wxComboBox::Show(bool show)
{
if ( !wxControl::Show(show) )
return false;
return true;
}
void wxComboBox::SetFocus()
{
#if USE_HICOMBOBOX
wxControl::SetFocus();
#else
if ( m_text != NULL) {
m_text->SetFocus();
}
#endif
}
void wxComboBox::DelegateTextChanged( const wxString& value )
{
SetStringSelection( value );
}
void wxComboBox::DelegateChoice( const wxString& value )
{
SetStringSelection( value );
}
bool wxComboBox::Create(wxWindow *parent, wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
const wxArrayString& choices,
long style,
const wxValidator& validator,
const wxString& name)
{
wxCArrayString chs( choices );
return Create( parent, id, value, pos, size, chs.GetCount(),
chs.GetStrings(), style, validator, name );
}
bool wxComboBox::Create(wxWindow *parent, wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
int n, const wxString choices[],
long style,
const wxValidator& validator,
const wxString& name)
{
m_text = NULL;
m_choice = NULL;
#if USE_HICOMBOBOX
DontCreatePeer();
#endif
if ( !wxControl::Create(parent, id, wxDefaultPosition, wxDefaultSize, style ,
wxDefaultValidator, name) )
{
return false;
}
#if USE_HICOMBOBOX
Rect bounds = wxMacGetBoundsForControl( this , pos , size );
HIRect hiRect;
hiRect.origin.x = 20; //bounds.left;
hiRect.origin.y = 25; //bounds.top;
hiRect.size.width = 120;// bounds.right - bounds.left;
hiRect.size.height = 24;
//For some reason, this code causes the combo box not to be displayed at all.
//hiRect.origin.x = bounds.left;
//hiRect.origin.y = bounds.top;
//hiRect.size.width = bounds.right - bounds.left;
//hiRect.size.height = bounds.bottom - bounds.top;
//printf("left = %d, right = %d, top = %d, bottom = %d\n", bounds.left, bounds.right, bounds.top, bounds.bottom);
//printf("x = %d, y = %d, width = %d, height = %d\n", hibounds.origin.x, hibounds.origin.y, hibounds.size.width, hibounds.size.height);
m_peer = new wxMacControl(this);
verify_noerr( HIComboBoxCreate( &hiRect, CFSTR(""), NULL, NULL, kHIComboBoxStandardAttributes, m_peer->GetControlRefAddr() ) );
m_peer->SetMinimum( 0 );
m_peer->SetMaximum( 100);
if ( n > 0 )
m_peer->SetValue( 1 );
MacPostControlCreate(pos,size);
Append( choices[ i ] );
HIViewSetVisible( m_peer->GetControlRef(), true );
SetSelection(0);
EventHandlerRef comboEventHandler;
InstallControlEventHandler( m_peer->GetControlRef(), GetwxMacComboBoxEventHandlerUPP(),
GetEventTypeCount(eventList), eventList, this,
(EventHandlerRef *)&comboEventHandler);
#else
m_choice = new wxComboBoxChoice(this, style );
m_choice->SetMinSize( wxSize( POPUPWIDTH , POPUPHEIGHT ) );
wxSize csize = size;
if ( style & wxCB_READONLY )
{
m_text = NULL;
}
else
{
m_text = new wxComboBoxText(this);
if ( size.y == wxDefaultCoord ) {
csize.y = m_text->GetSize().y;
}
}
DoSetSize(pos.x, pos.y, csize.x, csize.y);
m_choice->Append( n, choices );
SetInitialSize(csize); // Needed because it is a wxControlWithItems
#endif
return true;
}
wxString wxComboBox::GetValue() const
{
#if USE_HICOMBOBOX
CFStringRef myString;
HIComboBoxCopyTextItemAtIndex( m_peer->GetControlRef(), (CFIndex)GetSelection(), &myString );
return wxMacCFStringHolder( myString, GetFont().GetEncoding() ).AsString();
#else
wxString result;
if ( m_text == NULL )
{
result = m_choice->GetString( m_choice->GetSelection() );
}
else
{
result = m_text->GetValue();
}
return result;
#endif
}
void wxComboBox::SetValue(const wxString& value)
{
#if USE_HICOMBOBOX
#else
int s = FindString (value);
if (s == wxNOT_FOUND && !HasFlag(wxCB_READONLY) )
{
m_choice->Append(value);
}
SetStringSelection( value );
#endif
}
// Clipboard operations
void wxComboBox::Copy()
{
if ( m_text != NULL )
{
m_text->Copy();
}
}
void wxComboBox::Cut()
{
if ( m_text != NULL )
{
m_text->Cut();
}
}
void wxComboBox::Paste()
{
if ( m_text != NULL )
{
m_text->Paste();
}
}
void wxComboBox::SetEditable(bool editable)
{
if ( ( m_text == NULL ) && editable )
{
m_text = new wxComboBoxText( this );
}
else if ( !editable )
{
wxDELETE(m_text);
}
int currentX, currentY;
GetPosition( &currentX, &currentY );
int currentW, currentH;
GetSize( &currentW, &currentH );
DoMoveWindow( currentX, currentY, currentW, currentH );
}
void wxComboBox::SetInsertionPoint(long pos)
{
// TODO
}
void wxComboBox::SetInsertionPointEnd()
{
// TODO
}
long wxComboBox::GetInsertionPoint() const
{
// TODO
return 0;
}
wxTextPos wxComboBox::GetLastPosition() const
{
// TODO
return 0;
}
void wxComboBox::Replace(long from, long to, const wxString& value)
{
// TODO
}
void wxComboBox::Remove(long from, long to)
{
// TODO
}
void wxComboBox::SetSelection(long from, long to)
{
// TODO
}
int wxComboBox::DoInsertItems(const wxArrayStringsAdapter& items,
unsigned int pos,
void **clientData, wxClientDataType type)
{
#if USE_HICOMBOBOX
const unsigned int count = items.GetCount();
for ( unsigned int i = 0; i < count; ++i, ++pos )
{
HIComboBoxInsertTextItemAtIndex(m_peer->GetControlRef(),
(CFIndex)pos,
wxMacCFStringHolder(items[i],
GetFont().GetEncoding()));
AssignNewItemClientData(pos, clientData, i, type);
}
//SetControl32BitMaximum( m_peer->GetControlRef(), GetCount() );
return pos - 1;
#else
return m_choice->DoInsertItems( items, pos, clientData, type );
#endif
}
void wxComboBox::DoSetItemClientData(unsigned int n, void* clientData)
{
#if USE_HICOMBOBOX
return; //TODO
#else
return m_choice->DoSetItemClientData( n , clientData );
#endif
}
void* wxComboBox::DoGetItemClientData(unsigned int n) const
{
#if USE_HICOMBOBOX
return NULL; //TODO
#else
return m_choice->DoGetItemClientData( n );
#endif
}
unsigned int wxComboBox::GetCount() const {
#if USE_HICOMBOBOX
return (unsigned int) HIComboBoxGetItemCount( m_peer->GetControlRef() );
#else
return m_choice->GetCount();
#endif
}
void wxComboBox::DoDeleteOneItem(unsigned int n)
{
#if USE_HICOMBOBOX
HIComboBoxRemoveItemAtIndex( m_peer->GetControlRef(), (CFIndex)n );
#else
m_choice->Delete( n );
#endif
}
void wxComboBox::DoClear()
{
#if USE_HICOMBOBOX
for ( CFIndex i = GetCount() - 1; i >= 0; ++ i )
verify_noerr( HIComboBoxRemoveItemAtIndex( m_peer->GetControlRef(), i ) );
m_peer->SetData<CFStringRef>(kHIComboBoxEditTextPart,kControlEditTextCFStringTag,CFSTR(""));
#else
m_choice->Clear();
#endif
}
int wxComboBox::GetSelection() const
{
#if USE_HICOMBOBOX
return FindString( GetStringSelection() );
#else
return m_choice->GetSelection();
#endif
}
void wxComboBox::SetSelection(int n)
{
#if USE_HICOMBOBOX
SetControl32BitValue( m_peer->GetControlRef() , n + 1 );
#else
m_choice->SetSelection( n );
if ( m_text != NULL )
{
m_text->SetValue(GetString(n));
}
#endif
}
int wxComboBox::FindString(const wxString& s, bool bCase) const
{
#if USE_HICOMBOBOX
for( unsigned int i = 0 ; i < GetCount() ; i++ )
{
if (GetString(i).IsSameAs(s, bCase) )
return i ;
}
return wxNOT_FOUND;
#else
return m_choice->FindString( s, bCase );
#endif
}
wxString wxComboBox::GetString(unsigned int n) const
{
#if USE_HICOMBOBOX
CFStringRef itemText;
HIComboBoxCopyTextItemAtIndex( m_peer->GetControlRef(), (CFIndex)n, &itemText );
return wxMacCFStringHolder(itemText).AsString();
#else
return m_choice->GetString( n );
#endif
}
wxString wxComboBox::GetStringSelection() const
{
#if USE_HICOMBOBOX
return wxMacCFStringHolder(m_peer->GetData<CFStringRef>(kHIComboBoxEditTextPart,kControlEditTextCFStringTag)).AsString();
#else
int sel = GetSelection ();
if (sel != wxNOT_FOUND)
return wxString(this->GetString((unsigned int)sel));
else
return wxEmptyString;
#endif
}
void wxComboBox::SetString(unsigned int n, const wxString& s)
{
#if USE_HICOMBOBOX
verify_noerr ( HIComboBoxInsertTextItemAtIndex( m_peer->GetControlRef(), (CFIndex) n,
wxMacCFStringHolder(s, GetFont().GetEncoding()) ) );
verify_noerr ( HIComboBoxRemoveItemAtIndex( m_peer->GetControlRef(), (CFIndex) n + 1 ) );
#else
m_choice->SetString( n , s );
#endif
}
bool wxComboBox::IsEditable() const
{
#if USE_HICOMBOBOX
// TODO
return !HasFlag(wxCB_READONLY);
#else
return m_text != NULL && !HasFlag(wxCB_READONLY);
#endif
}
void wxComboBox::Undo()
{
#if USE_HICOMBOBOX
// TODO
#else
if (m_text != NULL)
m_text->Undo();
#endif
}
void wxComboBox::Redo()
{
#if USE_HICOMBOBOX
// TODO
#else
if (m_text != NULL)
m_text->Redo();
#endif
}
void wxComboBox::SelectAll()
{
#if USE_HICOMBOBOX
// TODO
#else
if (m_text != NULL)
m_text->SelectAll();
#endif
}
bool wxComboBox::CanCopy() const
{
#if USE_HICOMBOBOX
// TODO
return false;
#else
if (m_text != NULL)
return m_text->CanCopy();
else
return false;
#endif
}
bool wxComboBox::CanCut() const
{
#if USE_HICOMBOBOX
// TODO
return false;
#else
if (m_text != NULL)
return m_text->CanCut();
else
return false;
#endif
}
bool wxComboBox::CanPaste() const
{
#if USE_HICOMBOBOX
// TODO
return false;
#else
if (m_text != NULL)
return m_text->CanPaste();
else
return false;
#endif
}
bool wxComboBox::CanUndo() const
{
#if USE_HICOMBOBOX
// TODO
return false;
#else
if (m_text != NULL)
return m_text->CanUndo();
else
return false;
#endif
}
bool wxComboBox::CanRedo() const
{
#if USE_HICOMBOBOX
// TODO
return false;
#else
if (m_text != NULL)
return m_text->CanRedo();
else
return false;
#endif
}
bool wxComboBox::OSXHandleClicked( double timestampsec )
{
wxCommandEvent event(wxEVT_COMBOBOX, m_windowId );
event.SetInt(GetSelection());
event.SetEventObject(this);
event.SetString(GetStringSelection());
ProcessCommand(event);
return true;
}

View File

@ -1,159 +0,0 @@
#ifdef __UNIX__
#include <Carbon.r>
#else
#include <Types.r>
#if UNIVERSAL_INTERFACES_VERSION > 0x320
#include <ControlDefinitions.r>
#endif
#endif
resource 'ldes' ( 128 )
{
versionZero
{
0 ,
0 ,
0 ,
0 ,
hasVertScroll ,
noHorizScroll ,
0 ,
noGrowSpace ,
}
} ;
resource 'ldes' ( 129 )
{
versionZero
{
0 ,
0 ,
0 ,
0 ,
hasVertScroll ,
hasHorizScroll ,
0 ,
noGrowSpace ,
}
} ;
data 'CURS' (10) {
$"0000 03E0 0630 0808 1004 31C6 2362 2222"
$"2362 31C6 1004 0808 0630 03E0 0000 0000"
$"0000 03E0 07F0 0FF8 1FFC 3FFE 3FFE 3FFE"
$"3FFE 3FFE 1FFC 0FF8 07F0 03E0 0000 0000"
$"0007 0008"
};
data 'CURS' (11) {
$"0000 0000 0000 0000 0000 0000 0000 0000"
$"0000 0000 0000 0000 0000 0000 0000 0000"
$"0000 0000 0000 0000 0000 0000 0000 0000"
$"0000 0000 0000 0000 0000 0000 0000 0000"
$"0000 0000"
};
data 'CURS' (12) {
$"00F0 0088 0108 0190 0270 0220 0440 0440"
$"0880 0880 1100 1E00 1C00 1800 1000 0000"
$"00F0 00F8 01F8 01F0 03F0 03E0 07C0 07C0"
$"0F80 0F80 1F00 1E00 1C00 1800 1000 0000"
$"000E 0003"
};
data 'CURS' (13) {
$"0000 1E00 2100 4080 4080 4080 4080 2180"
$"1FC0 00E0 0070 0038 001C 000E 0006 0000"
$"3F00 7F80 FFC0 FFC0 FFC0 FFC0 FFC0 7FC0"
$"3FE0 1FF0 00F8 007C 003E 001F 000F 0007"
$"0004 0004"
};
data 'CURS' (14) {
$"0000 07E0 1FF0 3838 3C0C 6E0E 6706 6386"
$"61C6 60E6 7076 303C 1C1C 0FF8 07E0 0000"
$"0540 0FF0 3FF8 3C3C 7E0E FF0F 6F86 E7C7"
$"63E6 E1F7 70FE 707E 3C3C 1FFC 0FF0 0540"
$"0007 0007"
};
data 'CURS' (15) {
$"0000 0380 0380 0380 0380 0380 0380 0FE0"
$"1FF0 1FF0 0000 1FF0 1FF0 1550 1550 1550"
$"07C0 07C0 07C0 07C0 07C0 07C0 0FE0 1FF0"
$"3FF8 3FF8 3FF8 3FF8 3FF8 3FF8 3FF8 3FF8"
$"000B 0007"
};
data 'CURS' (16) {
$"00C0 0140 0640 08C0 3180 47FE 8001 8001"
$"81FE 8040 01C0 0040 03C0 C080 3F80 0000"
$"00C0 01C0 07C0 0FC0 3F80 7FFE FFFF FFFF"
$"FFFE FFC0 FFC0 FFC0 FFC0 FF80 3F80 0000"
$"0006 000F"
};
data 'CURS' (17) {
$"0100 0280 0260 0310 018C 7FE3 8000 8000"
$"7F80 0200 0380 0200 03C0 0107 01F8 0000"
$"0100 0380 03E0 03F0 01FC 7FFF FFFF FFFF"
$"FFFF 03FF 03FF 03FF 03FF 01FF 01F8 0000"
$"0006 0000"
};
data 'CURS' (18) {
$"0000 4078 60FC 71CE 7986 7C06 7E0E 7F1C"
$"7FB8 7C30 6C30 4600 0630 0330 0300 0000"
$"C078 E0FC F1FE FBFF FFCF FF8F FF1F FFBE"
$"FFFC FE78 FF78 EFF8 CFF8 87F8 07F8 0300"
$"0001 0001"
};
data 'CURS' (19) {
$"0000 0002 0006 000E 001E 003E 007E 00FE"
$"01FE 003E 0036 0062 0060 00C0 00C0 0000"
$"0003 0007 000F 001F 003F 007F 00FF 01FF"
$"03FF 07FF 007F 00F7 00F3 01E1 01E0 01C0"
$"0001 000E"
};
data 'CURS' (20) {
$"0000 0080 01C0 03E0 0080 0080 0080 1FFC"
$"1FFC 0080 0080 0080 03E0 01C0 0080 0000"
$"0080 01C0 03E0 07F0 0FF8 01C0 3FFE 3FFE"
$"3FFE 3FFE 01C0 0FF8 07F0 03E0 01C0 0080"
$"0007 0008"
};
data 'CURS' (21) {
$"0000 0080 01C0 03E0 0080 0888 188C 3FFE"
$"188C 0888 0080 03E0 01C0 0080 0000 0000"
$"0080 01C0 03E0 07F0 0BE8 1DDC 3FFE 7FFF"
$"3FFE 1DDC 0BE8 07F0 03E0 01C0 0080 0000"
$"0007 0008"
};
data 'CURS' (22) {
$"0000 001E 000E 060E 0712 03A0 01C0 00E0"
$"0170 1238 1C18 1C00 1E00 0000 0000 0000"
$"007F 003F 0E1F 0F0F 0F97 07E3 03E1 21F0"
$"31F8 3A7C 3C3C 3E1C 3F00 3F80 0000 0000"
$"0006 0009"
};
data 'CURS' (23) {
$"0000 7800 7000 7060 48E0 05C0 0380 0700"
$"0E80 1C48 1838 0038 0078 0000 0000 0000"
$"FE00 FC00 F870 F0F0 E9F0 C7E0 87C0 0F84"
$"1F8C 3E5C 3C3C 387C 00FC 01FC 0000 0000"
$"0006 0006"
};
data 'CURS' (24) {
$"0006 000E 001C 0018 0020 0040 00F8 0004"
$"1FF4 200C 2AA8 1FF0 1F80 3800 6000 8000"
$"000F 001F 003E 007C 0070 00E0 01FC 3FF6"
$"7FF6 7FFE 7FFC 7FF8 3FF0 7FC0 F800 E000"
$"000A 0006"
};

View File

@ -1,256 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/osx/carbon/dirmac.cpp
// Purpose: wxDir implementation for Mac
// Author: Stefan Csomor
// Modified by:
// Created: 08.12.99
// Copyright: (c) 1999 Stefan Csomor <csomor@advanced.ch>
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "wx/dir.h"
#ifndef WX_PRECOMP
#include "wx/intl.h"
#include "wx/log.h"
#endif // PCH
#include "wx/filename.h"
#include "wx/osx/private.h"
// ----------------------------------------------------------------------------
// private classes
// ----------------------------------------------------------------------------
// this class stores everything we need to enumerate the files
class wxDirData
{
public:
wxDirData(const wxString& dirname);
~wxDirData();
void Close() ;
void SetFileSpec(const wxString& filespec) { m_filespec = filespec; }
void SetFlags(int flags) { m_flags = flags; }
bool Read(wxString *filename); // reads the next
void Rewind() ;
const wxString& GetName() const { return m_dirname; }
private:
FSIterator m_iterator ;
wxString m_dirname;
wxString m_filespec;
int m_flags;
};
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// wxDirData
// ----------------------------------------------------------------------------
wxDirData::wxDirData(const wxString& dirname)
: m_dirname(dirname)
{
// throw away the trailing slashes
size_t n = m_dirname.length();
wxCHECK_RET( n, wxT("empty dir name in wxDir") );
while ( n > 0 && wxIsPathSeparator(m_dirname[--n]) )
;
m_dirname.Truncate(n + 1);
m_iterator = NULL ;
}
wxDirData::~wxDirData()
{
Close() ;
}
void wxDirData::Close()
{
if ( m_iterator )
{
FSCloseIterator( m_iterator ) ;
m_iterator = NULL ;
}
}
void wxDirData::Rewind()
{
Close() ;
}
bool wxDirData::Read(wxString *filename)
{
wxString result;
OSStatus err = noErr ;
if ( NULL == m_iterator )
{
FSRef dirRef;
err = wxMacPathToFSRef( m_dirname , &dirRef ) ;
if ( err == noErr )
{
err = FSOpenIterator(&dirRef, kFSIterateFlat, &m_iterator);
}
if ( err )
{
Close() ;
return false ;
}
}
wxString name ;
wxString lowerfilespec = m_filespec.Lower();
while( noErr == err )
{
HFSUniStr255 uniname ;
FSRef fileRef;
FSCatalogInfo catalogInfo;
ItemCount fetched = 0;
err = FSGetCatalogInfoBulk( m_iterator, 1, &fetched, NULL, kFSCatInfoNodeFlags | kFSCatInfoFinderInfo , &catalogInfo , &fileRef, NULL, &uniname );
// expected error codes
if ( errFSNoMoreItems == err )
return false ;
if ( afpAccessDenied == err )
return false ;
if ( noErr != err )
break ;
name = wxMacHFSUniStrToString( &uniname ) ;
wxString lowername = name.Lower();
if ( ( name == wxT(".") || name == wxT("..") ) && !(m_flags & wxDIR_DOTDOT) )
continue;
if ( ( name[0U] == '.' ) && !(m_flags & wxDIR_HIDDEN ) )
continue ;
if ( (((FileInfo*)&catalogInfo.finderInfo)->finderFlags & kIsInvisible ) && !(m_flags & wxDIR_HIDDEN ) )
continue ;
// its a dir and we don't want it
if ( (catalogInfo.nodeFlags & kFSNodeIsDirectoryMask) && !(m_flags & wxDIR_DIRS) )
continue ;
// its a file but we don't want it
if ( (catalogInfo.nodeFlags & kFSNodeIsDirectoryMask) == 0 && !(m_flags & wxDIR_FILES ) )
continue ;
if ( m_filespec.empty() || m_filespec == wxT("*.*") || m_filespec == wxT("*") )
{
}
else if ( !wxMatchWild(lowerfilespec, lowername , false) )
{
continue ;
}
break ;
}
if ( err != noErr )
{
return false ;
}
*filename = name ;
return true;
}
// ----------------------------------------------------------------------------
// wxDir construction/destruction
// ----------------------------------------------------------------------------
wxDir::wxDir(const wxString& dirname)
{
m_data = NULL;
(void)Open(dirname);
}
bool wxDir::Open(const wxString& dirname)
{
delete m_data;
m_data = new wxDirData(dirname);
return true;
}
bool wxDir::IsOpened() const
{
return m_data != NULL;
}
wxString wxDir::GetName() const
{
wxString name;
if ( m_data )
{
name = m_data->GetName();
if ( !name.empty() && (name.Last() == wxT('/')) )
{
// chop off the last (back)slash
name.Truncate(name.length() - 1);
}
}
return name;
}
wxDir::~wxDir()
{
wxDELETE(m_data);
}
// ----------------------------------------------------------------------------
// wxDir enumerating
// ----------------------------------------------------------------------------
bool wxDir::GetFirst(wxString *filename,
const wxString& filespec,
int flags) const
{
wxCHECK_MSG( IsOpened(), false, wxT("must wxDir::Open() first") );
m_data->Rewind();
m_data->SetFileSpec(filespec);
m_data->SetFlags(flags);
return GetNext(filename);
}
bool wxDir::GetNext(wxString *filename) const
{
wxCHECK_MSG( IsOpened(), false, wxT("must wxDir::Open() first") );
wxCHECK_MSG( filename, false, wxT("bad pointer in wxDir::GetNext()") );
return m_data->Read(filename);
}

View File

@ -125,27 +125,17 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event))
wxPaintDC dc(this);
dc.Clear();
int major, minor;
wxGetOsVersion( &major, &minor );
int w, h;
GetSize( &w, &h );
if ( MacIsReallyHilited() )
{
wxPen white( *wxWHITE , 1 , wxPENSTYLE_SOLID );
if (major >= 10)
{
// Finder statusbar border color: (Project Builder similar is 9B9B9B)
if ( MacGetTopLevelWindow()->GetExtraStyle() & wxFRAME_EX_METAL )
dc.SetPen(wxPen(wxColour(0x40, 0x40, 0x40), 1, wxPENSTYLE_SOLID));
else
dc.SetPen(wxPen(wxColour(0xB1, 0xB1, 0xB1), 1, wxPENSTYLE_SOLID));
}
// Finder statusbar border color: (Project Builder similar is 9B9B9B)
if ( MacGetTopLevelWindow()->GetExtraStyle() & wxFRAME_EX_METAL )
dc.SetPen(wxPen(wxColour(0x40, 0x40, 0x40), 1, wxPENSTYLE_SOLID));
else
{
wxPen black( *wxBLACK , 1 , wxPENSTYLE_SOLID );
dc.SetPen(black);
}
dc.SetPen(wxPen(wxColour(0xB1, 0xB1, 0xB1), 1, wxPENSTYLE_SOLID));
dc.DrawLine(0, 0, w, 0);
dc.SetPen(white);
@ -153,11 +143,8 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event))
}
else
{
if (major >= 10)
// Finder statusbar border color: (Project Builder similar is 9B9B9B)
dc.SetPen(wxPen(wxColour(0xB1, 0xB1, 0xB1), 1, wxPENSTYLE_SOLID));
else
dc.SetPen(wxPen(wxColour(0x80, 0x80, 0x80), 1, wxPENSTYLE_SOLID));
// Finder statusbar border color: (Project Builder similar is 9B9B9B)
dc.SetPen(wxPen(wxColour(0xB1, 0xB1, 0xB1), 1, wxPENSTYLE_SOLID));
dc.DrawLine(0, 0, w, 0);
}

Binary file not shown.

View File

@ -152,26 +152,6 @@ wxEventLoopSourcesManagerBase* wxGUIAppTraits::GetEventLoopSourcesManager()
/////////////////////////////////////////////////////////////////////////////
// NOTE: This doesn't really belong here but this was a handy file to
// put it in because it's already compiled for wxCocoa and wxMac GUI lib.
#if wxUSE_STDPATHS
wxStandardPaths& wxGUIAppTraits::GetStandardPaths()
{
// Derive a class just to be able to create it: wxStandardPaths ctor is
// protected to prevent its misuse, but it also means we can't create an
// object of this class directly.
class wxStandardPathsDefault : public wxStandardPaths
{
public:
wxStandardPathsDefault() { }
};
static wxStandardPathsDefault gs_stdPaths;
return gs_stdPaths;
}
#endif
#if wxUSE_SOCKETS
// we need to implement this method in a file of the core library as it should

Binary file not shown.