initial commit
Signed-off-by: Peter Siegmund <mars3142@noreply.mars3142.dev>
This commit is contained in:
56
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/chkconf.h
Normal file
56
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/chkconf.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Name: wx/osx/cocoa/chkconf.h
|
||||
* Purpose: Compiler-specific configuration checking
|
||||
* Author: Stefan Csomor
|
||||
* Modified by:
|
||||
* Created: 2008-07-30
|
||||
* Copyright: (c) Stefan Csomor
|
||||
* Licence: wxWindows licence
|
||||
*/
|
||||
|
||||
#ifndef _WX_OSX_COCOA_CHKCONF_H_
|
||||
#define _WX_OSX_COCOA_CHKCONF_H_
|
||||
|
||||
/*
|
||||
* native (1) or emulated (0) toolbar
|
||||
*/
|
||||
|
||||
#ifndef wxOSX_USE_NATIVE_TOOLBAR
|
||||
#define wxOSX_USE_NATIVE_TOOLBAR 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
* leave is isFlipped and don't override
|
||||
*/
|
||||
#ifndef wxOSX_USE_NATIVE_FLIPPED
|
||||
#define wxOSX_USE_NATIVE_FLIPPED 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Audio System
|
||||
*/
|
||||
|
||||
#define wxOSX_USE_QUICKTIME 0
|
||||
#define wxOSX_USE_AUDIOTOOLBOX 1
|
||||
|
||||
/*
|
||||
Use the more efficient FSEvents API instead of kqueue
|
||||
events for file system watcher since that version introduced a flag that
|
||||
allows watching files as well as sub directories.
|
||||
*/
|
||||
#define wxHAVE_FSEVENTS_FILE_NOTIFICATIONS 1
|
||||
|
||||
/*
|
||||
* turn off old style icon format if not asked for
|
||||
*/
|
||||
#ifndef wxOSX_USE_ICONREF
|
||||
#define wxOSX_USE_ICONREF 0
|
||||
#endif
|
||||
|
||||
/*
|
||||
* turning off capabilities that don't work under cocoa yet
|
||||
*/
|
||||
|
||||
#endif
|
||||
/* _WX_MAC_CHKCONF_H_ */
|
||||
|
||||
564
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/dataview.h
Normal file
564
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/dataview.h
Normal file
@@ -0,0 +1,564 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/osx/cocoa/dataview.h
|
||||
// Purpose: wxDataViewCtrl native implementation header for carbon
|
||||
// Author:
|
||||
// Copyright: (c) 2009
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_DATAVIEWCTRL_COCOOA_H_
|
||||
#define _WX_DATAVIEWCTRL_COCOOA_H_
|
||||
|
||||
#include "wx/defs.h"
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
#include "wx/osx/core/dataview.h"
|
||||
#include "wx/osx/private.h"
|
||||
|
||||
// Forward declaration
|
||||
class wxCocoaDataViewControl;
|
||||
|
||||
/*
|
||||
Dramatis personae:
|
||||
|
||||
[vertical arrows indicate inheritance, horizontal -- aggregation]
|
||||
|
||||
|
||||
wxWindow ---> wxWidgetCocoaImpl wxDataViewWidgetImpl NSOutlineView
|
||||
| \ / |
|
||||
| \ / |
|
||||
| \ / |
|
||||
v \/ \/ v
|
||||
wxDataViewCtrl -------> wxCocoaDataViewControl <-------> wxCocoaOutlineView
|
||||
|
||||
|
||||
The right most classes are Objective-C only and can't be used from (pure)
|
||||
C++ code.
|
||||
*/
|
||||
|
||||
// ============================================================================
|
||||
// wxPointerObject: simply stores a pointer, without taking its ownership
|
||||
// ============================================================================
|
||||
|
||||
// Two pointer objects are equal if the containing pointers are equal. This
|
||||
// means also that the hash value of a pointer object depends only on the
|
||||
// stored pointer.
|
||||
|
||||
@interface wxPointerObject : NSObject
|
||||
{
|
||||
void* pointer;
|
||||
}
|
||||
|
||||
-(id) initWithPointer:(void*)initPointer;
|
||||
|
||||
-(void*) pointer;
|
||||
-(void) setPointer:(void*)newPointer;
|
||||
@end
|
||||
|
||||
// ============================================================================
|
||||
// wxSortDescriptorObject: helper class to use native sorting facilities
|
||||
// ============================================================================
|
||||
|
||||
@interface wxSortDescriptorObject : NSSortDescriptor<NSCopying>
|
||||
{
|
||||
wxDataViewColumn* columnPtr; // pointer to the sorting column
|
||||
|
||||
wxDataViewModel* modelPtr; // pointer to model
|
||||
}
|
||||
|
||||
-(id)
|
||||
initWithModelPtr:(wxDataViewModel*)initModelPtr
|
||||
sortingColumnPtr:(wxDataViewColumn*)initColumnPtr
|
||||
ascending:(BOOL)sortAscending;
|
||||
|
||||
-(wxDataViewColumn*) columnPtr;
|
||||
-(wxDataViewModel*) modelPtr;
|
||||
|
||||
-(void) setColumnPtr:(wxDataViewColumn*)newColumnPtr;
|
||||
-(void) setModelPtr:(wxDataViewModel*)newModelPtr;
|
||||
@end
|
||||
|
||||
// ============================================================================
|
||||
// wxDataViewColumnNativeData: extra data for wxDataViewColumn
|
||||
// ============================================================================
|
||||
|
||||
class wxDataViewColumnNativeData
|
||||
{
|
||||
public:
|
||||
wxDataViewColumnNativeData() : m_NativeColumnPtr(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
wxDataViewColumnNativeData(NSTableColumn* initNativeColumnPtr)
|
||||
: m_NativeColumnPtr(initNativeColumnPtr)
|
||||
{
|
||||
}
|
||||
|
||||
NSTableColumn* GetNativeColumnPtr() const
|
||||
{
|
||||
return m_NativeColumnPtr;
|
||||
}
|
||||
|
||||
void SetNativeColumnPtr(NSTableColumn* newNativeColumnPtr)
|
||||
{
|
||||
m_NativeColumnPtr = newNativeColumnPtr;
|
||||
}
|
||||
|
||||
private:
|
||||
// not owned by us
|
||||
NSTableColumn* m_NativeColumnPtr;
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
// wxDataViewRendererNativeData: extra data for wxDataViewRenderer
|
||||
// ============================================================================
|
||||
|
||||
class wxDataViewRendererNativeData
|
||||
{
|
||||
public:
|
||||
wxDataViewRendererNativeData()
|
||||
: m_Object(nullptr), m_ColumnCell(nullptr), m_ItemCell(nullptr)
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
wxDataViewRendererNativeData(NSCell* initColumnCell)
|
||||
: m_Object(nullptr), m_ColumnCell([initColumnCell retain]), m_ItemCell(nullptr)
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
wxDataViewRendererNativeData(NSCell* initColumnCell, id initObject)
|
||||
: m_Object([initObject retain]), m_ColumnCell([initColumnCell retain]), m_ItemCell(nullptr)
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
~wxDataViewRendererNativeData()
|
||||
{
|
||||
[m_ColumnCell release];
|
||||
[m_Object release];
|
||||
|
||||
[m_origFont release];
|
||||
[m_origTextColour release];
|
||||
[m_origBackgroundColour release];
|
||||
}
|
||||
|
||||
NSCell* GetColumnCell() const { return m_ColumnCell; }
|
||||
NSTableColumn* GetColumnPtr() const { return m_TableColumnPtr; }
|
||||
id GetItem() const { return m_Item; }
|
||||
NSCell* GetItemCell() const { return m_ItemCell; }
|
||||
id GetObject() const { return m_Object; }
|
||||
|
||||
void SetColumnCell(NSCell* newCell)
|
||||
{
|
||||
[newCell retain];
|
||||
[m_ColumnCell release];
|
||||
m_ColumnCell = newCell;
|
||||
}
|
||||
void SetColumnPtr(NSTableColumn* newColumnPtr)
|
||||
{
|
||||
m_TableColumnPtr = newColumnPtr;
|
||||
}
|
||||
void SetItem(id newItem)
|
||||
{
|
||||
m_Item = newItem;
|
||||
}
|
||||
void SetItemCell(NSCell* newCell)
|
||||
{
|
||||
m_ItemCell = newCell;
|
||||
}
|
||||
void SetObject(id newObject)
|
||||
{
|
||||
[newObject retain];
|
||||
[m_Object release];
|
||||
m_Object = newObject;
|
||||
}
|
||||
|
||||
// The original cell font and text colour stored here are null by default
|
||||
// and are only initialized to the values retrieved from the cell when we
|
||||
// change them from wxCocoaOutlineView:willDisplayCell:forTableColumn:item:
|
||||
// which calls our SaveOriginalXXX() methods before changing the cell
|
||||
// attributes.
|
||||
//
|
||||
// This allows us to avoid doing anything for the columns without any
|
||||
// attributes but still be able to restore the correct attributes for the
|
||||
// ones that do.
|
||||
NSFont *GetOriginalFont() const { return m_origFont; }
|
||||
NSColor *GetOriginalTextColour() const { return m_origTextColour; }
|
||||
NSColor *GetOriginalBackgroundColour() const { return m_origBackgroundColour; }
|
||||
|
||||
void SaveOriginalFont(NSFont *font)
|
||||
{
|
||||
m_origFont = [font retain];
|
||||
}
|
||||
|
||||
void SaveOriginalTextColour(NSColor *textColour)
|
||||
{
|
||||
m_origTextColour = [textColour retain];
|
||||
}
|
||||
|
||||
void SaveOriginalBackgroundColour(NSColor *backgroundColour)
|
||||
{
|
||||
m_origBackgroundColour = [backgroundColour retain];
|
||||
}
|
||||
|
||||
// The ellipsization mode which we need to set for each cell being rendered.
|
||||
void SetEllipsizeMode(wxEllipsizeMode mode) { m_ellipsizeMode = mode; }
|
||||
wxEllipsizeMode GetEllipsizeMode() const { return m_ellipsizeMode; }
|
||||
|
||||
// Set the line break mode for the given cell using our m_ellipsizeMode
|
||||
void ApplyLineBreakMode(NSCell *cell);
|
||||
|
||||
// Does the rendered use a font that the control can't override?
|
||||
void SetHasCustomFont(bool has) { m_hasCustomFont = has; }
|
||||
bool HasCustomFont() const { return m_hasCustomFont; }
|
||||
|
||||
private:
|
||||
// common part of all ctors
|
||||
void Init();
|
||||
|
||||
id m_Item; // item NOT owned by renderer
|
||||
|
||||
// object that can be used by renderer for storing special data (owned by
|
||||
// renderer)
|
||||
id m_Object;
|
||||
|
||||
NSCell* m_ColumnCell; // column's cell is owned by renderer
|
||||
NSCell* m_ItemCell; // item's cell is NOT owned by renderer
|
||||
|
||||
NSTableColumn* m_TableColumnPtr; // column NOT owned by renderer
|
||||
|
||||
// we own those if they're non-null
|
||||
NSFont *m_origFont;
|
||||
NSColor *m_origTextColour;
|
||||
NSColor *m_origBackgroundColour;
|
||||
|
||||
wxEllipsizeMode m_ellipsizeMode;
|
||||
|
||||
bool m_hasCustomFont;
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
// wxCocoaOutlineDataSource
|
||||
// ============================================================================
|
||||
|
||||
// This class implements the data source delegate for the outline view.
|
||||
// As only an informal protocol exists this class inherits from NSObject only.
|
||||
//
|
||||
// As mentioned in the documentation for NSOutlineView the native control does
|
||||
// not own any data. Therefore, it has to be done by the data source.
|
||||
// Unfortunately, wxWidget's data source is a C++ data source but
|
||||
// NSOutlineDataSource requires objects as data. Therefore, the data (or better
|
||||
// the native item objects) have to be stored additionally in the native data
|
||||
// source.
|
||||
// NSOutlineView requires quick access to the item objects and quick linear
|
||||
// access to an item's children. This requires normally a hash type of storage
|
||||
// for the item object itself and an array structure for each item's children.
|
||||
// This means that basically two times the whole structure of wxWidget's model
|
||||
// class has to be stored.
|
||||
// This implementation is using a compromise: all items that are in use by the
|
||||
// control are stored in a set (from there they can be easily retrieved) and
|
||||
// owned by the set. Furthermore, children of the last parent are stored
|
||||
// in a linear list.
|
||||
//
|
||||
@interface wxCocoaOutlineDataSource : NSObject <NSOutlineViewDataSource>
|
||||
{
|
||||
// descriptors specifying the sorting (currently the array only holds one
|
||||
// object only)
|
||||
NSArray* sortDescriptors;
|
||||
|
||||
NSMutableArray* children; // buffered children
|
||||
|
||||
NSMutableSet* items; // stores all items that are in use by the control
|
||||
|
||||
wxCocoaDataViewControl* implementation;
|
||||
|
||||
wxDataViewModel* model;
|
||||
|
||||
// parent of the buffered children; the object is owned
|
||||
wxPointerObject* currentParentItem;
|
||||
}
|
||||
|
||||
// methods of informal protocol:
|
||||
-(BOOL)
|
||||
outlineView:(NSOutlineView*)outlineView
|
||||
acceptDrop:(id<NSDraggingInfo>)info
|
||||
item:(id)item
|
||||
childIndex:(NSInteger)index;
|
||||
|
||||
-(id)
|
||||
outlineView:(NSOutlineView*)outlineView
|
||||
child:(NSInteger)index
|
||||
ofItem:(id)item;
|
||||
|
||||
-(id)
|
||||
outlineView:(NSOutlineView*)outlineView
|
||||
objectValueForTableColumn:(NSTableColumn*)tableColumn
|
||||
byItem:(id)item;
|
||||
|
||||
-(BOOL)
|
||||
outlineView:(NSOutlineView*)outlineView
|
||||
isItemExpandable:(id)item;
|
||||
|
||||
-(NSInteger)
|
||||
outlineView:(NSOutlineView*)outlineView
|
||||
numberOfChildrenOfItem:(id)item;
|
||||
|
||||
-(NSDragOperation)
|
||||
outlineView:(NSOutlineView*)outlineView
|
||||
validateDrop:(id<NSDraggingInfo>)info
|
||||
proposedItem:(id)item
|
||||
proposedChildIndex:(NSInteger)index;
|
||||
|
||||
-(BOOL)
|
||||
outlineView:(NSOutlineView*)outlineView
|
||||
writeItems:(NSArray*)items
|
||||
toPasteboard:(NSPasteboard*)pasteboard;
|
||||
|
||||
// buffer for items handling
|
||||
-(void) addToBuffer:(wxPointerObject*)item;
|
||||
-(void) clearBuffer;
|
||||
// returns the item in the buffer that has got the same pointer as "item",
|
||||
// if such an item does not exist nil is returned
|
||||
-(wxPointerObject*) getDataViewItemFromBuffer:(const wxDataViewItem&)item;
|
||||
-(wxPointerObject*) getItemFromBuffer:(wxPointerObject*)item;
|
||||
-(BOOL) isInBuffer:(wxPointerObject*)item;
|
||||
-(void) removeFromBuffer:(wxPointerObject*)item;
|
||||
|
||||
// buffered children handling
|
||||
-(void) clearChildren;
|
||||
-(wxPointerObject*) getChild:(NSUInteger)index;
|
||||
-(NSUInteger) getChildCount;
|
||||
|
||||
// buffer handling
|
||||
-(void) clearBuffers;
|
||||
|
||||
// sorting
|
||||
-(NSArray*) sortDescriptors;
|
||||
-(void) setSortDescriptors:(NSArray*)newSortDescriptors;
|
||||
|
||||
// access to wxWidgets variables
|
||||
-(wxPointerObject*) currentParentItem;
|
||||
-(wxCocoaDataViewControl*) implementation;
|
||||
-(wxDataViewModel*) model;
|
||||
-(void) setCurrentParentItem:(wxPointerObject*)newCurrentParentItem;
|
||||
-(void) setImplementation:(wxCocoaDataViewControl*)newImplementation;
|
||||
-(void) setModel:(wxDataViewModel*)newModel;
|
||||
|
||||
// other methods
|
||||
-(void)
|
||||
bufferItem:(wxPointerObject*)parentItem
|
||||
withChildren:(wxDataViewItemArray*)dataViewChildrenPtr;
|
||||
@end
|
||||
|
||||
// ============================================================================
|
||||
// wxCustomCell: used for custom renderers
|
||||
// ============================================================================
|
||||
|
||||
@interface wxCustomCell : NSTextFieldCell
|
||||
{
|
||||
}
|
||||
|
||||
-(NSSize) cellSize;
|
||||
@end
|
||||
|
||||
// ============================================================================
|
||||
// wxImageCell: used for bitmap renderer
|
||||
// ============================================================================
|
||||
|
||||
@interface wxImageCell : NSImageCell
|
||||
{
|
||||
}
|
||||
|
||||
-(NSSize) cellSize;
|
||||
@end
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// NSTextFieldCell customized to allow vertical alignment
|
||||
// ============================================================================
|
||||
|
||||
@interface wxTextFieldCell : NSTextFieldCell
|
||||
{
|
||||
@private
|
||||
int alignment_;
|
||||
BOOL adjustRect_;
|
||||
}
|
||||
|
||||
-(void) setWXAlignment:(int)alignment;
|
||||
@end
|
||||
|
||||
// ============================================================================
|
||||
// wxImageTextCell
|
||||
// ============================================================================
|
||||
//
|
||||
// As the native cocoa environment does not have a cell displaying an icon/
|
||||
// image and text at the same time, it has to be implemented by the user.
|
||||
// This implementation follows the implementation of Chuck Pisula in Apple's
|
||||
// DragNDropOutline sample application.
|
||||
// Although in wxDataViewCtrl icons are used on OSX icons do not exist for
|
||||
// display. Therefore, the cell is also called wxImageTextCell.
|
||||
// Instead of displaying images of any size (which is possible) this cell uses
|
||||
// a fixed size for displaying the image. Larger images are scaled to fit
|
||||
// into their reserved space. Smaller or not existing images use the fixed
|
||||
// reserved size and are scaled if necessary.
|
||||
//
|
||||
@interface wxImageTextCell : wxTextFieldCell
|
||||
{
|
||||
@private
|
||||
CGFloat xImageShift; // shift for the image in x-direction from border
|
||||
CGFloat spaceImageText; // space between image and text
|
||||
|
||||
NSImage* image; // the image itself
|
||||
|
||||
NSSize imageSize; // largest size of the image; default size is (16, 16)
|
||||
|
||||
// the text alignment is used to align the whole cell (image and text)
|
||||
NSTextAlignment cellAlignment;
|
||||
}
|
||||
|
||||
-(NSTextAlignment) alignment;
|
||||
-(void) setAlignment:(NSTextAlignment)newAlignment;
|
||||
|
||||
-(NSImage*) image;
|
||||
-(void) setImage:(NSImage*)newImage;
|
||||
|
||||
-(NSSize) imageSize;
|
||||
-(void) setImageSize:(NSSize) newImageSize;
|
||||
|
||||
-(NSSize) cellSize;
|
||||
@end
|
||||
|
||||
// ============================================================================
|
||||
// wxCocoaOutlineView
|
||||
// ============================================================================
|
||||
|
||||
@interface wxCocoaOutlineView : NSOutlineView <NSOutlineViewDelegate>
|
||||
{
|
||||
@private
|
||||
// column and row of the cell being edited or -1 if none
|
||||
int currentlyEditedColumn,
|
||||
currentlyEditedRow;
|
||||
|
||||
wxCocoaDataViewControl* implementation;
|
||||
}
|
||||
|
||||
-(wxCocoaDataViewControl*) implementation;
|
||||
-(void) setImplementation:(wxCocoaDataViewControl*) newImplementation;
|
||||
@end
|
||||
|
||||
// ============================================================================
|
||||
// wxCocoaDataViewControl
|
||||
// ============================================================================
|
||||
|
||||
// This is the internal interface class between wxDataViewCtrl (wxWidget) and
|
||||
// the native source view (Mac OS X cocoa).
|
||||
class wxCocoaDataViewControl : public wxWidgetCocoaImpl,
|
||||
public wxDataViewWidgetImpl
|
||||
{
|
||||
public:
|
||||
// constructors / destructor
|
||||
wxCocoaDataViewControl(wxWindow* peer,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size,
|
||||
long style);
|
||||
virtual ~wxCocoaDataViewControl();
|
||||
|
||||
wxDataViewCtrl* GetDataViewCtrl() const
|
||||
{
|
||||
return static_cast<wxDataViewCtrl*>(GetWXPeer());
|
||||
}
|
||||
|
||||
// column related methods (inherited from wxDataViewWidgetImpl)
|
||||
virtual bool ClearColumns() override;
|
||||
virtual bool DeleteColumn(wxDataViewColumn* columnPtr) override;
|
||||
virtual void DoSetExpanderColumn(wxDataViewColumn const* columnPtr) override;
|
||||
virtual wxDataViewColumn* GetColumn(unsigned int pos) const override;
|
||||
virtual int GetColumnPosition(wxDataViewColumn const* columnPtr) const override;
|
||||
virtual bool InsertColumn(unsigned int pos, wxDataViewColumn* columnPtr) override;
|
||||
virtual void FitColumnWidthToContent(unsigned int pos) override;
|
||||
|
||||
// item related methods (inherited from wxDataViewWidgetImpl)
|
||||
virtual bool Add(const wxDataViewItem& parent, const wxDataViewItem& item) override;
|
||||
virtual bool Add(const wxDataViewItem& parent,
|
||||
const wxDataViewItemArray& items) override;
|
||||
virtual void Collapse(const wxDataViewItem& item) override;
|
||||
virtual void EnsureVisible(const wxDataViewItem& item,
|
||||
wxDataViewColumn const* columnPtr) override;
|
||||
virtual unsigned int GetCount() const override;
|
||||
virtual int GetCountPerPage() const override;
|
||||
virtual wxRect GetRectangle(const wxDataViewItem& item,
|
||||
wxDataViewColumn const* columnPtr) override;
|
||||
virtual wxDataViewItem GetTopItem() const override;
|
||||
virtual bool IsExpanded(const wxDataViewItem& item) const override;
|
||||
virtual bool Reload() override;
|
||||
virtual bool Remove(const wxDataViewItem& parent) override;
|
||||
virtual bool Update(const wxDataViewColumn* columnPtr) override;
|
||||
virtual bool Update(const wxDataViewItem& parent,
|
||||
const wxDataViewItem& item) override;
|
||||
virtual bool Update(const wxDataViewItem& parent,
|
||||
const wxDataViewItemArray& items) override;
|
||||
|
||||
// model related methods
|
||||
virtual bool AssociateModel(wxDataViewModel* model) override;
|
||||
|
||||
//
|
||||
// selection related methods (inherited from wxDataViewWidgetImpl)
|
||||
//
|
||||
virtual wxDataViewItem GetCurrentItem() const override;
|
||||
virtual void SetCurrentItem(const wxDataViewItem& item) override;
|
||||
virtual wxDataViewColumn *GetCurrentColumn() const override;
|
||||
virtual int GetSelectedItemsCount() const override;
|
||||
virtual int GetSelections(wxDataViewItemArray& sel) const override;
|
||||
virtual bool IsSelected(const wxDataViewItem& item) const override;
|
||||
virtual void Select(const wxDataViewItem& item) override;
|
||||
virtual void Select(const wxDataViewItemArray& items) override;
|
||||
virtual void SelectAll() override;
|
||||
virtual void Unselect(const wxDataViewItem& item) override;
|
||||
virtual void UnselectAll() override;
|
||||
|
||||
//
|
||||
// sorting related methods
|
||||
//
|
||||
virtual wxDataViewColumn* GetSortingColumn () const override;
|
||||
virtual void Resort() override;
|
||||
|
||||
//
|
||||
// other methods (inherited from wxDataViewWidgetImpl)
|
||||
//
|
||||
virtual void DoSetIndent(int indent) override;
|
||||
|
||||
virtual void DoExpand(const wxDataViewItem& item, bool expandChildren) override;
|
||||
|
||||
virtual void HitTest(const wxPoint& point,
|
||||
wxDataViewItem& item,
|
||||
wxDataViewColumn*& columnPtr) const override;
|
||||
virtual void SetRowHeight(int height) override;
|
||||
virtual void SetRowHeight(const wxDataViewItem& item, unsigned int height) override;
|
||||
virtual void OnSize() override;
|
||||
|
||||
virtual void StartEditor( const wxDataViewItem & item, unsigned int column ) override;
|
||||
|
||||
// Cocoa-specific helpers
|
||||
id GetItemAtRow(int row) const;
|
||||
|
||||
virtual void SetFont(const wxFont& font) override;
|
||||
|
||||
virtual void keyEvent(WX_NSEvent event, WXWidget slf, void* _cmd) override;
|
||||
virtual bool doCommandBySelector(void* sel, WXWidget slf, void* _cmd) override;
|
||||
|
||||
private:
|
||||
void InitOutlineView(long style);
|
||||
int GetDefaultRowHeight() const;
|
||||
|
||||
wxCocoaOutlineDataSource* m_DataSource;
|
||||
|
||||
wxCocoaOutlineView* m_OutlineView;
|
||||
|
||||
// Width of expander in pixels, computed on demand.
|
||||
int m_expanderWidth;
|
||||
};
|
||||
|
||||
#endif // _WX_DATAVIEWCTRL_COCOOA_H_
|
||||
48
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/evtloop.h
Normal file
48
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/evtloop.h
Normal file
@@ -0,0 +1,48 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/osx/cocoa/evtloop.h
|
||||
// Purpose: declaration of wxGUIEventLoop for wxOSX/Cocoa
|
||||
// Author: Vadim Zeitlin
|
||||
// Created: 2008-12-28
|
||||
// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwidgets.org>
|
||||
// Licence: wxWindows licence
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_OSX_COCOA_EVTLOOP_H_
|
||||
#define _WX_OSX_COCOA_EVTLOOP_H_
|
||||
|
||||
class WXDLLIMPEXP_BASE wxGUIEventLoop : public wxCFEventLoop
|
||||
{
|
||||
public:
|
||||
wxGUIEventLoop();
|
||||
~wxGUIEventLoop();
|
||||
|
||||
void BeginModalSession( wxWindow* modalWindow );
|
||||
|
||||
void EndModalSession();
|
||||
|
||||
virtual void WakeUp() override;
|
||||
|
||||
void OSXUseLowLevelWakeup(bool useIt)
|
||||
{ m_osxLowLevelWakeUp = useIt ; }
|
||||
|
||||
protected:
|
||||
virtual int DoDispatchTimeout(unsigned long timeout) override;
|
||||
|
||||
virtual void OSXDoRun() override;
|
||||
virtual void OSXDoStop() override;
|
||||
|
||||
virtual CFRunLoopRef CFGetCurrentRunLoop() const override;
|
||||
|
||||
void* m_modalSession;
|
||||
|
||||
wxWindow* m_modalWindow;
|
||||
|
||||
WXWindow m_dummyWindow;
|
||||
|
||||
int m_modalNestedLevel;
|
||||
|
||||
bool m_osxLowLevelWakeUp;
|
||||
};
|
||||
|
||||
#endif // _WX_OSX_COCOA_EVTLOOP_H_
|
||||
|
||||
602
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/private.h
Normal file
602
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/private.h
Normal file
@@ -0,0 +1,602 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/osx/cocoa/private.h
|
||||
// Purpose: Private declarations: as this header is only included by
|
||||
// wxWidgets itself, it may contain identifiers which don't start
|
||||
// with "wx".
|
||||
// Author: Stefan Csomor
|
||||
// Created: 1998-01-01
|
||||
// Copyright: (c) Stefan Csomor
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_PRIVATE_COCOA_H_
|
||||
#define _WX_PRIVATE_COCOA_H_
|
||||
|
||||
#include <ApplicationServices/ApplicationServices.h>
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#endif
|
||||
|
||||
#include <vector>
|
||||
|
||||
//
|
||||
// shared between Cocoa and Carbon
|
||||
//
|
||||
|
||||
#include "wx/bmpbndl.h"
|
||||
|
||||
// bring in theming types without pulling in the headers
|
||||
|
||||
#if wxUSE_GUI
|
||||
typedef SInt16 ThemeBrush;
|
||||
CGColorRef WXDLLIMPEXP_CORE wxMacCreateCGColorFromHITheme( ThemeBrush brush ) ;
|
||||
OSStatus WXDLLIMPEXP_CORE wxMacDrawCGImage(
|
||||
CGContextRef inContext,
|
||||
const CGRect * inBounds,
|
||||
CGImageRef inImage) ;
|
||||
void WXDLLIMPEXP_CORE wxOSXDrawNSImage(
|
||||
CGContextRef inContext,
|
||||
const CGRect * inBounds,
|
||||
WX_NSImage inImage,
|
||||
wxCompositionMode composition) ;
|
||||
WX_NSImage WXDLLIMPEXP_CORE wxOSXGetSystemImage(const wxString& name);
|
||||
WX_NSImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromCGImage( CGImageRef image, double scale = 1.0, bool isTemplate = false);
|
||||
WX_NSImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromIconRef( WXHICON iconref );
|
||||
WX_NSImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromCFURL( CFURLRef urlref );
|
||||
WX_NSImage WXDLLIMPEXP_CORE wxOSXGetIconForType(OSType type );
|
||||
void WXDLLIMPEXP_CORE wxOSXSetImageSize(WX_NSImage image, CGFloat width, CGFloat height);
|
||||
wxBitmapBundle WXDLLIMPEXP_CORE wxOSXCreateSystemBitmapBundle(const wxString& id, const wxString &client, const wxSize& size);
|
||||
WXWindow WXDLLIMPEXP_CORE wxOSXGetMainWindow();
|
||||
WXWindow WXDLLIMPEXP_CORE wxOSXGetKeyWindow();
|
||||
WXImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromNSCursor(const WXHCURSOR cursor);
|
||||
|
||||
class WXDLLIMPEXP_FWD_CORE wxDialog;
|
||||
|
||||
class WXDLLIMPEXP_FWD_CORE wxWidgetCocoaImpl;
|
||||
|
||||
// a class which disables sending wx keydown events useful when adding text programmatically, for wx-internal use only
|
||||
class wxWidgetCocoaNativeKeyDownSuspender
|
||||
{
|
||||
public:
|
||||
// stops sending keydown events for text inserted into this widget
|
||||
explicit wxWidgetCocoaNativeKeyDownSuspender(wxWidgetCocoaImpl *target);
|
||||
|
||||
// resumes sending keydown events
|
||||
~wxWidgetCocoaNativeKeyDownSuspender();
|
||||
|
||||
private:
|
||||
wxWidgetCocoaImpl *m_target;
|
||||
NSEvent* m_nsevent;
|
||||
bool m_wxsent;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxWidgetCocoaNativeKeyDownSuspender);
|
||||
};
|
||||
|
||||
class WXDLLIMPEXP_CORE wxWidgetCocoaImpl : public wxWidgetImpl
|
||||
{
|
||||
public :
|
||||
wxWidgetCocoaImpl( wxWindowMac* peer , WXWidget w, int flags = 0 ) ;
|
||||
wxWidgetCocoaImpl() ;
|
||||
~wxWidgetCocoaImpl();
|
||||
|
||||
void Init();
|
||||
|
||||
virtual bool IsVisible() const override;
|
||||
virtual void SetVisibility(bool) override;
|
||||
|
||||
// we provide a static function which can be reused from
|
||||
// wxNonOwnedWindowCocoaImpl too
|
||||
static bool ShowViewOrWindowWithEffect(wxWindow *win,
|
||||
bool show,
|
||||
wxShowEffect effect,
|
||||
unsigned timeout);
|
||||
|
||||
virtual bool ShowWithEffect(bool show,
|
||||
wxShowEffect effect,
|
||||
unsigned timeout) override;
|
||||
|
||||
virtual void Raise() override;
|
||||
|
||||
virtual void Lower() override;
|
||||
|
||||
virtual void ScrollRect( const wxRect *rect, int dx, int dy ) override;
|
||||
|
||||
virtual WXWidget GetWXWidget() const override { return m_osxView; }
|
||||
|
||||
virtual void SetBackgroundColour(const wxColour&) override;
|
||||
virtual bool SetBackgroundStyle(wxBackgroundStyle style) override;
|
||||
virtual void SetForegroundColour(const wxColour& col) override;
|
||||
|
||||
virtual void GetContentArea( int &left, int &top, int &width, int &height ) const override;
|
||||
virtual void Move(int x, int y, int width, int height) override;
|
||||
virtual void GetPosition( int &x, int &y ) const override;
|
||||
virtual void GetSize( int &width, int &height ) const override;
|
||||
virtual void SetControlSize( wxWindowVariant variant ) override;
|
||||
virtual void GetLayoutInset(int &left , int &top , int &right, int &bottom) const override;
|
||||
virtual void SetNeedsDisplay( const wxRect* where = nullptr ) override;
|
||||
virtual bool GetNeedsDisplay() const override;
|
||||
|
||||
virtual void EnableFocusRing(bool enabled) override;
|
||||
|
||||
virtual void SetDrawingEnabled(bool enabled) override;
|
||||
|
||||
virtual bool CanFocus() const override;
|
||||
// return true if successful
|
||||
virtual bool SetFocus() override;
|
||||
virtual bool HasFocus() const override;
|
||||
|
||||
void RemoveFromParent() override;
|
||||
void Embed( wxWidgetImpl *parent ) override;
|
||||
|
||||
void SetDefaultButton( bool isDefault ) override;
|
||||
void PerformClick() override;
|
||||
virtual void SetLabel(const wxString& title) override;
|
||||
|
||||
void SetCursor( const wxCursor & cursor ) override;
|
||||
void CaptureMouse() override;
|
||||
void ReleaseMouse() override;
|
||||
#if wxUSE_DRAG_AND_DROP
|
||||
void SetDropTarget(wxDropTarget* target) override;
|
||||
#endif
|
||||
wxInt32 GetValue() const override;
|
||||
void SetValue( wxInt32 v ) override;
|
||||
wxBitmap GetBitmap() const override;
|
||||
void SetBitmap( const wxBitmapBundle& bitmap ) override;
|
||||
void SetBitmapPosition( wxDirection dir ) override;
|
||||
void SetupTabs( const wxNotebook ¬ebook ) override;
|
||||
void GetBestRect( wxRect *r ) const override;
|
||||
bool IsEnabled() const override;
|
||||
void Enable( bool enable ) override;
|
||||
bool ButtonClickDidStateChange() override { return true; }
|
||||
void SetMinimum( wxInt32 v ) override;
|
||||
void SetMaximum( wxInt32 v ) override;
|
||||
void SetIncrement(int value) override;
|
||||
wxInt32 GetMinimum() const override;
|
||||
wxInt32 GetMaximum() const override;
|
||||
int GetIncrement() const override;
|
||||
void PulseGauge() override;
|
||||
void SetScrollThumb( wxInt32 value, wxInt32 thumbSize ) override;
|
||||
|
||||
void SetFont(const wxFont & font) override;
|
||||
void SetToolTip( wxToolTip* tooltip ) override;
|
||||
|
||||
void InstallEventHandler( WXWidget control = nullptr ) override;
|
||||
bool EnableTouchEvents(int eventsMask) override;
|
||||
|
||||
virtual bool ShouldHandleKeyNavigation(const wxKeyEvent &event) const;
|
||||
bool DoHandleKeyNavigation(const wxKeyEvent &event);
|
||||
virtual bool DoHandleMouseEvent(NSEvent *event);
|
||||
virtual bool DoHandleKeyEvent(NSEvent *event);
|
||||
virtual bool DoHandleCharEvent(NSEvent *event, NSString *text);
|
||||
virtual void DoNotifyFocusSet();
|
||||
virtual void DoNotifyFocusLost();
|
||||
virtual void DoNotifyFocusEvent(bool receivedFocus, wxWidgetImpl* otherWindow);
|
||||
|
||||
virtual void SetupKeyEvent(wxKeyEvent &wxevent, NSEvent * nsEvent, NSString* charString = nullptr);
|
||||
|
||||
using MouseEvents = std::vector<wxMouseEvent>;
|
||||
virtual MouseEvents TranslateMouseEvent(NSEvent * nsEvent);
|
||||
|
||||
void SetupCoordinates(wxCoord &x, wxCoord &y, NSEvent *nsEvent);
|
||||
virtual bool SetupCursor(NSEvent* event);
|
||||
|
||||
virtual void PanGestureEvent(NSPanGestureRecognizer *panGestureRecognizer);
|
||||
virtual void ZoomGestureEvent(NSMagnificationGestureRecognizer *magnificationGestureRecognizer);
|
||||
virtual void RotateGestureEvent(NSRotationGestureRecognizer *rotationGestureRecognizer);
|
||||
virtual void LongPressEvent(NSPressGestureRecognizer *pressGestureRecognizer);
|
||||
virtual void TouchesBegan(NSEvent *event);
|
||||
virtual void TouchesMoved(NSEvent *event);
|
||||
virtual void TouchesEnded(NSEvent *event);
|
||||
virtual void TouchesCancel(NSEvent *event);
|
||||
|
||||
#if !wxOSX_USE_NATIVE_FLIPPED
|
||||
void SetFlipped(bool flipped);
|
||||
virtual bool IsFlipped() const { return m_isFlipped; }
|
||||
#endif
|
||||
|
||||
virtual double GetContentScaleFactor() const override;
|
||||
|
||||
// cocoa thunk connected calls
|
||||
|
||||
#if wxUSE_DRAG_AND_DROP
|
||||
virtual unsigned int draggingEntered(void* sender, WXWidget slf, void* _cmd);
|
||||
virtual void draggingExited(void* sender, WXWidget slf, void* _cmd);
|
||||
virtual unsigned int draggingUpdated(void* sender, WXWidget slf, void* _cmd);
|
||||
virtual bool performDragOperation(void* sender, WXWidget slf, void* _cmd);
|
||||
#endif
|
||||
virtual void mouseEvent(WX_NSEvent event, WXWidget slf, void* _cmd);
|
||||
virtual void cursorUpdate(WX_NSEvent event, WXWidget slf, void* _cmd);
|
||||
virtual void keyEvent(WX_NSEvent event, WXWidget slf, void* _cmd);
|
||||
virtual void insertText(NSString* text, WXWidget slf, void* _cmd);
|
||||
// Returns true if the event was processed by a user-defined event handler.
|
||||
virtual bool doCommandBySelector(void* sel, WXWidget slf, void* _cmd);
|
||||
virtual bool acceptsFirstResponder(WXWidget slf, void* _cmd);
|
||||
virtual bool becomeFirstResponder(WXWidget slf, void* _cmd);
|
||||
virtual bool resignFirstResponder(WXWidget slf, void* _cmd);
|
||||
#if !wxOSX_USE_NATIVE_FLIPPED
|
||||
virtual bool isFlipped(WXWidget slf, void* _cmd);
|
||||
#endif
|
||||
virtual void drawRect(void* rect, WXWidget slf, void* _cmd);
|
||||
|
||||
virtual void controlAction(WXWidget slf, void* _cmd, void* sender);
|
||||
virtual void controlDoubleAction(WXWidget slf, void* _cmd, void *sender);
|
||||
|
||||
// for wxTextCtrl-derived classes, put here since they don't all derive
|
||||
// from the same pimpl class.
|
||||
virtual void controlTextDidChange();
|
||||
|
||||
virtual void AdjustClippingView(wxScrollBar* horizontal, wxScrollBar* vertical) override;
|
||||
virtual void UseClippingView() override;
|
||||
virtual WXWidget GetContainer() const override { return m_osxClipView ? m_osxClipView : m_osxView; }
|
||||
|
||||
virtual void ApplyScrollViewBorderType() override;
|
||||
|
||||
protected:
|
||||
WXWidget m_osxView;
|
||||
WXWidget m_osxClipView;
|
||||
|
||||
// begins processing of native key down event, storing the native event for later wx event generation
|
||||
void BeginNativeKeyDownEvent( NSEvent* event );
|
||||
// done with the current native key down event
|
||||
void EndNativeKeyDownEvent();
|
||||
// allow executing text changes without triggering key down events
|
||||
|
||||
// is currently processing a native key down event
|
||||
bool IsInNativeKeyDown() const;
|
||||
// the native key event
|
||||
NSEvent* GetLastNativeKeyDownEvent();
|
||||
// did send the wx event for the current native key down event
|
||||
void SetKeyDownSent();
|
||||
// was the wx event for the current native key down event sent
|
||||
bool WasKeyDownSent() const;
|
||||
|
||||
|
||||
// Return the view to apply the font/colour to.
|
||||
NSView* GetViewWithText() const;
|
||||
|
||||
NSEvent* m_lastKeyDownEvent;
|
||||
bool m_lastKeyDownWXSent;
|
||||
#if !wxOSX_USE_NATIVE_FLIPPED
|
||||
bool m_isFlipped;
|
||||
#endif
|
||||
// if it the control has an editor, that editor will already send some
|
||||
// events, don't resend them
|
||||
bool m_hasEditor;
|
||||
|
||||
friend class wxWidgetCocoaNativeKeyDownSuspender;
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxWidgetCocoaImpl);
|
||||
};
|
||||
|
||||
DECLARE_WXCOCOA_OBJC_CLASS( wxNSWindow );
|
||||
|
||||
class wxNonOwnedWindowCocoaImpl : public wxNonOwnedWindowImpl
|
||||
{
|
||||
public :
|
||||
wxNonOwnedWindowCocoaImpl( wxNonOwnedWindow* nonownedwnd) ;
|
||||
wxNonOwnedWindowCocoaImpl();
|
||||
|
||||
virtual ~wxNonOwnedWindowCocoaImpl();
|
||||
|
||||
virtual void WillBeDestroyed() override;
|
||||
void Create( wxWindow* parent, const wxPoint& pos, const wxSize& size,
|
||||
long style, long extraStyle, const wxString& name ) override;
|
||||
void Create( wxWindow* parent, WXWindow nativeWindow );
|
||||
|
||||
WXWindow GetWXWindow() const override;
|
||||
void Raise() override;
|
||||
void Lower() override;
|
||||
bool Show(bool show) override;
|
||||
|
||||
virtual bool ShowWithEffect(bool show,
|
||||
wxShowEffect effect,
|
||||
unsigned timeout) override;
|
||||
|
||||
void Update() override;
|
||||
bool SetTransparent(wxByte alpha) override;
|
||||
bool SetBackgroundColour(const wxColour& col ) override;
|
||||
void SetExtraStyle( long exStyle ) override;
|
||||
void SetWindowStyleFlag( long style ) override;
|
||||
bool SetBackgroundStyle(wxBackgroundStyle style) override;
|
||||
bool CanSetTransparent() override;
|
||||
|
||||
void MoveWindow(int x, int y, int width, int height) override;
|
||||
void GetPosition( int &x, int &y ) const override;
|
||||
void GetSize( int &width, int &height ) const override;
|
||||
|
||||
void GetContentArea( int &left, int &top, int &width, int &height ) const override;
|
||||
bool SetShape(const wxRegion& region) override;
|
||||
|
||||
virtual void SetTitle( const wxString& title ) override;
|
||||
|
||||
virtual wxContentProtection GetContentProtection() const override;
|
||||
virtual bool SetContentProtection(wxContentProtection contentProtection) override;
|
||||
|
||||
virtual bool EnableCloseButton(bool enable) override;
|
||||
virtual bool EnableMaximizeButton(bool enable) override;
|
||||
virtual bool EnableMinimizeButton(bool enable) override;
|
||||
|
||||
virtual bool IsMaximized() const override;
|
||||
|
||||
virtual bool IsIconized() const override;
|
||||
|
||||
virtual void Iconize( bool iconize ) override;
|
||||
|
||||
virtual void Maximize(bool maximize) override;
|
||||
|
||||
virtual bool IsFullScreen() const override;
|
||||
|
||||
bool EnableFullScreenView(bool enable, long style) override;
|
||||
|
||||
virtual bool ShowFullScreen(bool show, long style) override;
|
||||
|
||||
virtual void ShowWithoutActivating() override;
|
||||
|
||||
virtual void RequestUserAttention(int flags) override;
|
||||
|
||||
virtual void ScreenToWindow( int *x, int *y ) override;
|
||||
|
||||
virtual void WindowToScreen( int *x, int *y ) override;
|
||||
|
||||
virtual bool IsActive() override;
|
||||
|
||||
virtual void SetModified(bool modified) override;
|
||||
virtual bool IsModified() const override;
|
||||
|
||||
virtual void SetRepresentedFilename(const wxString& filename) override;
|
||||
|
||||
virtual void SetBottomBorderThickness(int thickness) override;
|
||||
|
||||
wxNonOwnedWindow* GetWXPeer() { return m_wxPeer; }
|
||||
|
||||
CGWindowLevel GetWindowLevel() const override { return m_macWindowLevel; }
|
||||
void RestoreWindowLevel() override;
|
||||
|
||||
bool m_macIgnoreNextFullscreenChange = false;
|
||||
long m_macFullscreenStyle = wxFULLSCREEN_ALL;
|
||||
|
||||
static WX_NSResponder GetNextFirstResponder() ;
|
||||
static WX_NSResponder GetFormerFirstResponder() ;
|
||||
protected :
|
||||
CGWindowLevel m_macWindowLevel;
|
||||
WXWindow m_macWindow;
|
||||
void * m_macFullScreenData ;
|
||||
|
||||
private:
|
||||
void SetUpForModalParent();
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxNonOwnedWindowCocoaImpl);
|
||||
};
|
||||
|
||||
DECLARE_WXCOCOA_OBJC_CLASS( wxNSButton );
|
||||
|
||||
class wxButtonCocoaImpl : public wxWidgetCocoaImpl, public wxButtonImpl
|
||||
{
|
||||
public:
|
||||
wxButtonCocoaImpl(wxWindowMac *wxpeer, wxNSButton *v);
|
||||
virtual void SetBitmap(const wxBitmapBundle& bitmap) override;
|
||||
#if wxUSE_MARKUP
|
||||
virtual void SetLabelMarkup(const wxString& markup) override;
|
||||
#endif // wxUSE_MARKUP
|
||||
|
||||
void SetPressedBitmap( const wxBitmapBundle& bitmap ) override;
|
||||
void SetAcceleratorFromLabel(const wxString& label);
|
||||
|
||||
NSButton *GetNSButton() const;
|
||||
};
|
||||
|
||||
#ifdef __OBJC__
|
||||
|
||||
typedef NSRect WXRect;
|
||||
typedef void (*wxOSX_TextEventHandlerPtr)(NSView* self, SEL _cmd, NSString *event);
|
||||
typedef void (*wxOSX_EventHandlerPtr)(NSView* self, SEL _cmd, NSEvent *event);
|
||||
typedef BOOL (*wxOSX_PerformKeyEventHandlerPtr)(NSView* self, SEL _cmd, NSEvent *event);
|
||||
typedef void (*wxOSX_DoCommandBySelectorPtr)(NSView* self, SEL _cmd, SEL _sel);
|
||||
typedef BOOL (*wxOSX_FocusHandlerPtr)(NSView* self, SEL _cmd);
|
||||
typedef void (*wxOSX_DoCommandBySelectorPtr)(NSView* self, SEL _cmd, SEL _sel);
|
||||
typedef NSDragOperation (*wxOSX_DraggingEnteredOrUpdatedHandlerPtr)(NSView *self, SEL _cmd, void *sender);
|
||||
typedef void (*wxOSX_DraggingExitedHandlerPtr)(NSView *self, SEL _cmd, void *sender);
|
||||
typedef BOOL (*wxOSX_PerformDragOperationHandlerPtr)(NSView *self, SEL _cmd, void *sender);
|
||||
|
||||
WXDLLIMPEXP_CORE NSScreen* wxOSXGetMenuScreen();
|
||||
WXDLLIMPEXP_CORE NSRect wxToNSRect( NSView* parent, const wxRect& r );
|
||||
WXDLLIMPEXP_CORE wxRect wxFromNSRect( NSView* parent, const NSRect& rect );
|
||||
WXDLLIMPEXP_CORE NSPoint wxToNSPoint( NSView* parent, const wxPoint& p );
|
||||
WXDLLIMPEXP_CORE wxPoint wxFromNSPoint( NSView* parent, const NSPoint& p );
|
||||
WXDLLIMPEXP_CORE NSPoint wxToNSPointF(NSView* parent, const wxPoint2DDouble& p);
|
||||
WXDLLIMPEXP_CORE wxPoint2DDouble wxFromNSPointF(NSView* parent, const NSPoint& p);
|
||||
|
||||
NSRect WXDLLIMPEXP_CORE wxOSXGetFrameForControl( wxWindowMac* window , const wxPoint& pos , const wxSize &size ,
|
||||
bool adjustForOrigin = true );
|
||||
|
||||
WXDLLIMPEXP_CORE NSView* wxOSXGetViewFromResponder( NSResponder* responder );
|
||||
|
||||
// used for many wxControls
|
||||
|
||||
@interface wxNSButton : NSButton
|
||||
{
|
||||
NSTrackingRectTag rectTag;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@interface wxNSBox : NSBox
|
||||
{
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@interface wxNSTextFieldEditor : NSTextView
|
||||
{
|
||||
NSEvent* lastKeyDownEvent;
|
||||
NSTextField* textField;
|
||||
}
|
||||
|
||||
- (void) setTextField:(NSTextField*) field;
|
||||
@end
|
||||
|
||||
@interface wxNSTextField : NSTextField <NSTextFieldDelegate>
|
||||
{
|
||||
}
|
||||
|
||||
// Note that the name WXFieldEditor is special and is checked by
|
||||
// windowWillReturnFieldEditor: in wxNonOwnedWindowController
|
||||
// implementation, see there.
|
||||
@property (retain) wxNSTextFieldEditor* WXFieldEditor;
|
||||
|
||||
@end
|
||||
|
||||
@interface wxNSSecureTextField : NSSecureTextField <NSTextFieldDelegate>
|
||||
{
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@interface wxNSTextView : NSTextView <NSTextViewDelegate>
|
||||
{
|
||||
}
|
||||
|
||||
- (void)textDidChange:(NSNotification *)aNotification;
|
||||
- (void)changeColor:(id)sender;
|
||||
|
||||
@property (retain) NSUndoManager* undoManager;
|
||||
|
||||
@end
|
||||
|
||||
@interface wxNSSearchField : NSSearchField
|
||||
{
|
||||
BOOL m_withinTextDidChange;
|
||||
}
|
||||
|
||||
@property (retain) wxNSTextFieldEditor* WXFieldEditor;
|
||||
|
||||
@end
|
||||
|
||||
@interface wxNSComboBox : NSComboBox
|
||||
{
|
||||
}
|
||||
|
||||
@property (retain) wxNSTextFieldEditor* WXFieldEditor;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
||||
@interface wxNSMenu : NSMenu
|
||||
{
|
||||
wxMenuImpl* impl;
|
||||
}
|
||||
|
||||
- (void) setImplementation:(wxMenuImpl*) item;
|
||||
- (wxMenuImpl*) implementation;
|
||||
|
||||
@end
|
||||
|
||||
@interface wxNSMenuItem : NSMenuItem
|
||||
{
|
||||
wxMenuItemImpl* impl;
|
||||
}
|
||||
|
||||
- (void) setImplementation:(wxMenuItemImpl*) item;
|
||||
- (wxMenuItemImpl*) implementation;
|
||||
|
||||
- (void)clickedAction:(id)sender;
|
||||
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem;
|
||||
|
||||
@end
|
||||
|
||||
// this enum declares which methods should not be overridden in the native view classes
|
||||
enum wxOSXSkipOverrides {
|
||||
wxOSXSKIP_NONE = 0x0,
|
||||
wxOSXSKIP_DRAW = 0x1,
|
||||
wxOSXSKIP_DND = 0x2
|
||||
};
|
||||
|
||||
void WXDLLIMPEXP_CORE wxOSXCocoaClassAddWXMethods(Class c, wxOSXSkipOverrides skipFlags = wxOSXSKIP_NONE);
|
||||
|
||||
/*
|
||||
We need this for ShowModal, as the sheet just disables the parent window and
|
||||
returns control to the app, whereas we don't want to return from ShowModal
|
||||
until the sheet has been dismissed.
|
||||
*/
|
||||
@interface ModalDialogDelegate : NSObject
|
||||
{
|
||||
BOOL sheetFinished;
|
||||
int resultCode;
|
||||
wxDialog* impl;
|
||||
}
|
||||
|
||||
- (void)setImplementation: (wxDialog *)dialog;
|
||||
- (BOOL)finished;
|
||||
- (int)code;
|
||||
- (void)waitForSheetToFinish;
|
||||
- (void)sheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo;
|
||||
@end
|
||||
|
||||
WXEXPORT
|
||||
@interface wxNSAppController : NSObject <NSApplicationDelegate>
|
||||
{
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#endif // __OBJC__
|
||||
|
||||
// NSCursor
|
||||
|
||||
WX_NSCursor wxMacCocoaCreateStockCursor( int cursor_type );
|
||||
WX_NSCursor wxMacCocoaCreateCursorFromCGImage( CGImageRef cgImageRef, float hotSpotX, float hotSpotY );
|
||||
void wxMacCocoaSetCursor( WX_NSCursor cursor );
|
||||
void wxMacCocoaHideCursor();
|
||||
void wxMacCocoaShowCursor();
|
||||
wxPoint wxMacCocoaGetCursorHotSpot( WX_NSCursor cursor );
|
||||
|
||||
typedef struct tagClassicCursor
|
||||
{
|
||||
wxUint16 bits[16];
|
||||
wxUint16 mask[16];
|
||||
wxInt16 hotspot[2];
|
||||
}ClassicCursor;
|
||||
|
||||
const short kwxCursorBullseye = 0;
|
||||
const short kwxCursorBlank = 1;
|
||||
const short kwxCursorPencil = 2;
|
||||
const short kwxCursorMagnifier = 3;
|
||||
const short kwxCursorNoEntry = 4;
|
||||
const short kwxCursorPaintBrush = 5;
|
||||
const short kwxCursorPointRight = 6;
|
||||
const short kwxCursorPointLeft = 7;
|
||||
const short kwxCursorQuestionArrow = 8;
|
||||
const short kwxCursorRightArrow = 9;
|
||||
const short kwxCursorSizeNS = 10;
|
||||
const short kwxCursorSize = 11;
|
||||
const short kwxCursorSizeNESW = 12;
|
||||
const short kwxCursorSizeNWSE = 13;
|
||||
const short kwxCursorRoller = 14;
|
||||
const short kwxCursorWatch = 15;
|
||||
const short kwxCursorLast = kwxCursorWatch;
|
||||
|
||||
// exposing our fallback cursor map
|
||||
|
||||
extern ClassicCursor gMacCursors[];
|
||||
|
||||
extern NSLayoutManager* gNSLayoutManager;
|
||||
|
||||
// helper class for setting the current appearance to the
|
||||
// effective appearance and restore when exiting scope
|
||||
|
||||
class WXDLLIMPEXP_CORE wxOSXEffectiveAppearanceSetter
|
||||
{
|
||||
public:
|
||||
wxOSXEffectiveAppearanceSetter();
|
||||
~wxOSXEffectiveAppearanceSetter();
|
||||
private:
|
||||
void * formerAppearance;
|
||||
};
|
||||
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
#endif
|
||||
// _WX_PRIVATE_COCOA_H_
|
||||
50
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/private/date.h
Normal file
50
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/private/date.h
Normal file
@@ -0,0 +1,50 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/osx/cocoa/private/date.h
|
||||
// Purpose: NSDate-related helpers
|
||||
// Author: Vadim Zeitlin
|
||||
// Created: 2011-12-19
|
||||
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
|
||||
// Licence: wxWindows licence
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_OSX_COCOA_PRIVATE_DATE_H_
|
||||
#define _WX_OSX_COCOA_PRIVATE_DATE_H_
|
||||
|
||||
#include "wx/datetime.h"
|
||||
|
||||
namespace wxOSXImpl
|
||||
{
|
||||
|
||||
// Functions to convert between NSDate and wxDateTime.
|
||||
|
||||
// Returns an NSDate corresponding to the given wxDateTime which can be invalid
|
||||
// (in which case nil is returned).
|
||||
inline NSDate* NSDateFromWX(const wxDateTime& dt)
|
||||
{
|
||||
if ( !dt.IsValid() )
|
||||
return nil;
|
||||
|
||||
// Get the internal representation as a double used by NSDate.
|
||||
double ticks = dt.GetValue().ToDouble();
|
||||
|
||||
// wxDateTime uses milliseconds while NSDate uses (fractional) seconds.
|
||||
return [NSDate dateWithTimeIntervalSince1970:ticks/1000.];
|
||||
}
|
||||
|
||||
|
||||
// Returns wxDateTime corresponding to the given NSDate (which may be nil).
|
||||
inline wxDateTime NSDateToWX(const NSDate* d)
|
||||
{
|
||||
if ( !d )
|
||||
return wxDefaultDateTime;
|
||||
|
||||
// Reverse everything done above.
|
||||
wxLongLong ll;
|
||||
ll.Assign([d timeIntervalSince1970]*1000);
|
||||
wxDateTime dt(ll);
|
||||
return dt;
|
||||
}
|
||||
|
||||
} // namespace wxOSXImpl
|
||||
|
||||
#endif // _WX_OSX_COCOA_PRIVATE_DATE_H_
|
||||
181
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/private/markuptoattr.h
Normal file
181
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/private/markuptoattr.h
Normal file
@@ -0,0 +1,181 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/osx/cocoa/private/markuptoattr.h
|
||||
// Purpose: Class to convert markup to Cocoa attributed strings.
|
||||
// Author: Vadim Zeitlin
|
||||
// Created: 2011-02-22
|
||||
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
|
||||
// Licence: wxWindows licence
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_OSX_COCOA_PRIVATE_MARKUPTOATTR_H_
|
||||
#define _WX_OSX_COCOA_PRIVATE_MARKUPTOATTR_H_
|
||||
|
||||
#include "wx/private/markupparserattr.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxMarkupToAttrString: create NSAttributedString from markup.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxMarkupToAttrStringBase : public wxMarkupParserAttrOutput
|
||||
{
|
||||
protected:
|
||||
// We don't care about the original colours because we never use them but
|
||||
// we do need the correct initial font as we apply modifiers (e.g. create a
|
||||
// font larger than it) to it and so it must be valid.
|
||||
wxMarkupToAttrStringBase(const wxFont& font)
|
||||
: wxMarkupParserAttrOutput(font, wxColour(), wxColour()),
|
||||
m_attrString(nullptr)
|
||||
{}
|
||||
|
||||
void Parse(const wxFont& font, const wxString& markup)
|
||||
{
|
||||
const wxCFStringRef label(PrepareText(wxMarkupParser::Strip(markup)));
|
||||
m_attrString = [[NSMutableAttributedString alloc]
|
||||
initWithString: label.AsNSString()];
|
||||
|
||||
m_pos = 0;
|
||||
|
||||
[m_attrString beginEditing];
|
||||
|
||||
// First thing we do is change the default string font: as mentioned in
|
||||
// Apple documentation, attributed strings use "Helvetica 12" font by
|
||||
// default which is different from the system "Lucida Grande" font. So
|
||||
// we need to explicitly change the font for the entire string.
|
||||
ApplyFont(font, NSMakeRange(0, [m_attrString length]));
|
||||
|
||||
// Now translate the markup tags to corresponding attributes.
|
||||
wxMarkupParser parser(*this);
|
||||
parser.Parse(markup);
|
||||
|
||||
[m_attrString endEditing];
|
||||
}
|
||||
|
||||
~wxMarkupToAttrStringBase()
|
||||
{
|
||||
if ( m_attrString )
|
||||
[m_attrString release];
|
||||
}
|
||||
|
||||
void ApplyFont(const wxFont& font, const NSRange& range)
|
||||
{
|
||||
[m_attrString addAttribute:NSFontAttributeName
|
||||
value:font.OSXGetNSFont()
|
||||
range:range];
|
||||
|
||||
if ( font.GetStrikethrough() )
|
||||
{
|
||||
[m_attrString addAttribute:NSStrikethroughStyleAttributeName
|
||||
value:@(NSUnderlineStyleSingle)
|
||||
range:range];
|
||||
}
|
||||
|
||||
if ( font.GetUnderlined() )
|
||||
{
|
||||
[m_attrString addAttribute:NSUnderlineStyleAttributeName
|
||||
value:@(NSUnderlineStyleSingle)
|
||||
range:range];
|
||||
}
|
||||
}
|
||||
|
||||
// prepare text chunk for display, e.g. strip mnemonics from it
|
||||
virtual wxString PrepareText(const wxString& text) = 0;
|
||||
|
||||
public:
|
||||
// Accessor for the users of this class.
|
||||
//
|
||||
// We keep ownership of the returned string.
|
||||
NSMutableAttributedString *GetNSAttributedString() const
|
||||
{
|
||||
return m_attrString;
|
||||
}
|
||||
|
||||
|
||||
// Implement base class pure virtual methods to process markup tags.
|
||||
virtual void OnText(const wxString& text) override
|
||||
{
|
||||
m_pos += PrepareText(text).length();
|
||||
}
|
||||
|
||||
virtual void OnAttrStart(const Attr& WXUNUSED(attr)) override
|
||||
{
|
||||
// Just remember the starting position of the range, we can't really
|
||||
// set the attribute until we find the end of it.
|
||||
m_rangeStarts.push(m_pos);
|
||||
}
|
||||
|
||||
virtual void OnAttrEnd(const Attr& attr) override
|
||||
{
|
||||
unsigned start = m_rangeStarts.top();
|
||||
m_rangeStarts.pop();
|
||||
|
||||
const NSRange range = NSMakeRange(start, m_pos - start);
|
||||
|
||||
ApplyFont(attr.font, range);
|
||||
|
||||
if ( attr.foreground.IsOk() )
|
||||
{
|
||||
[m_attrString addAttribute:NSForegroundColorAttributeName
|
||||
value:attr.foreground.OSXGetNSColor()
|
||||
range:range];
|
||||
}
|
||||
|
||||
if ( attr.background.IsOk() )
|
||||
{
|
||||
[m_attrString addAttribute:NSBackgroundColorAttributeName
|
||||
value:attr.background.OSXGetNSColor()
|
||||
range:range];
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
// The attributed string we're building.
|
||||
NSMutableAttributedString *m_attrString;
|
||||
|
||||
// The current position in the output string.
|
||||
unsigned m_pos;
|
||||
|
||||
// The positions of starting ranges.
|
||||
wxStack<unsigned> m_rangeStarts;
|
||||
};
|
||||
|
||||
|
||||
// for use with labels with mnemonics
|
||||
class wxMarkupToAttrString : public wxMarkupToAttrStringBase
|
||||
{
|
||||
public:
|
||||
wxMarkupToAttrString(const wxFont& font, const wxString& markup)
|
||||
: wxMarkupToAttrStringBase(font)
|
||||
{
|
||||
Parse(font, markup);
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual wxString PrepareText(const wxString& text) override
|
||||
{
|
||||
return wxControl::RemoveMnemonics(text);
|
||||
}
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxMarkupToAttrString);
|
||||
};
|
||||
|
||||
|
||||
// for raw markup with no mnemonics
|
||||
class wxItemMarkupToAttrString : public wxMarkupToAttrStringBase
|
||||
{
|
||||
public:
|
||||
wxItemMarkupToAttrString(const wxFont& font, const wxString& markup)
|
||||
: wxMarkupToAttrStringBase(font)
|
||||
{
|
||||
Parse(font, markup);
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual wxString PrepareText(const wxString& text) override
|
||||
{
|
||||
return text;
|
||||
}
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxItemMarkupToAttrString);
|
||||
};
|
||||
|
||||
#endif // _WX_OSX_COCOA_PRIVATE_MARKUPTOATTR_H_
|
||||
212
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/private/textimpl.h
Normal file
212
libs/wxWidgets-3.3.1/include/wx/osx/cocoa/private/textimpl.h
Normal file
@@ -0,0 +1,212 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/osx/cocoa/private/textimpl.h
|
||||
// Purpose: textcontrol implementation classes that have to be exposed
|
||||
// Author: Stefan Csomor
|
||||
// Created: 03/02/99
|
||||
// Copyright: (c) Stefan Csomor
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_
|
||||
#define _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_
|
||||
|
||||
#include "wx/combobox.h"
|
||||
#include "wx/osx/private.h"
|
||||
|
||||
@class wxTextEntryFormatter;
|
||||
|
||||
class wxNSTextBase : public wxWidgetCocoaImpl, public wxTextWidgetImpl
|
||||
{
|
||||
public :
|
||||
wxNSTextBase( wxTextCtrl *text, WXWidget w )
|
||||
: wxWidgetCocoaImpl(text, w),
|
||||
wxTextWidgetImpl(text)
|
||||
{
|
||||
}
|
||||
wxNSTextBase( wxWindow *wxPeer, wxTextEntry *entry, WXWidget w )
|
||||
: wxWidgetCocoaImpl(wxPeer, w),
|
||||
wxTextWidgetImpl(entry)
|
||||
{
|
||||
}
|
||||
virtual ~wxNSTextBase() = default;
|
||||
|
||||
virtual bool ShouldHandleKeyNavigation(const wxKeyEvent &event) const override;
|
||||
|
||||
virtual void SetInitialLabel(const wxString& WXUNUSED(title)) override
|
||||
{
|
||||
// Don't do anything here, text controls don't have any label and
|
||||
// setting it would overwrite the string value set when creating it.
|
||||
}
|
||||
};
|
||||
|
||||
// implementation exposed, so that search control can pull it
|
||||
|
||||
class wxNSTextFieldControl : public wxNSTextBase
|
||||
{
|
||||
public :
|
||||
// wxNSTextFieldControl must always be associated with a wxTextEntry. If
|
||||
// it's associated with a wxTextCtrl then we can get the associated entry
|
||||
// from it but otherwise the second ctor should be used to explicitly pass
|
||||
// us the entry.
|
||||
wxNSTextFieldControl( wxTextCtrl *text, WXWidget w );
|
||||
wxNSTextFieldControl( wxWindow *wxPeer, wxTextEntry *entry, WXWidget w );
|
||||
virtual ~wxNSTextFieldControl();
|
||||
|
||||
virtual bool CanClipMaxLength() const override { return true; }
|
||||
virtual void SetMaxLength(unsigned long len) override;
|
||||
|
||||
virtual bool CanForceUpper() override { return true; }
|
||||
virtual void ForceUpper() override;
|
||||
|
||||
virtual wxTextSearchResult SearchText(const wxTextSearch& WXUNUSED(search)) const override
|
||||
{
|
||||
wxFAIL_MSG("SearchText() should only be used with multiline controls.");
|
||||
return wxTextSearchResult{};
|
||||
}
|
||||
|
||||
virtual wxString GetStringValue() const override ;
|
||||
virtual void SetStringValue( const wxString &str) override ;
|
||||
virtual wxString GetRTFValue() const override
|
||||
{
|
||||
wxFAIL_MSG("GetRTFValue() should only be used with multiline controls.");
|
||||
return wxEmptyString;
|
||||
}
|
||||
virtual void SetRTFValue(const wxString& WXUNUSED(str)) override
|
||||
{
|
||||
wxFAIL_MSG("SetRTFValue() should only be used with multiline controls.");
|
||||
}
|
||||
virtual void Copy() override ;
|
||||
virtual void Cut() override ;
|
||||
virtual void Paste() override ;
|
||||
virtual bool CanPaste() const override ;
|
||||
virtual void SetEditable(bool editable) override ;
|
||||
virtual long GetLastPosition() const override;
|
||||
virtual void GetSelection( long* from, long* to) const override ;
|
||||
virtual void SetSelection( long from , long to ) override;
|
||||
virtual bool PositionToXY(long pos, long *x, long *y) const override;
|
||||
virtual long XYToPosition(long x, long y) const override;
|
||||
virtual void ShowPosition(long pos) override;
|
||||
virtual void WriteText(const wxString& str) override ;
|
||||
virtual bool HasOwnContextMenu() const override { return true; }
|
||||
virtual bool SetHint(const wxString& hint) override;
|
||||
virtual void SetJustification() override;
|
||||
|
||||
virtual void controlAction(WXWidget slf, void* _cmd, void *sender) override;
|
||||
virtual bool becomeFirstResponder(WXWidget slf, void *_cmd) override;
|
||||
virtual bool resignFirstResponder(WXWidget slf, void *_cmd) override;
|
||||
|
||||
virtual void EnableNewLineReplacement(bool enable) override;
|
||||
virtual bool GetNewLineReplacement() override;
|
||||
virtual void SetInternalSelection( long from , long to );
|
||||
virtual void UpdateInternalSelectionFromEditor( wxNSTextFieldEditor* editor);
|
||||
|
||||
virtual wxSize GetBestSize() const override;
|
||||
|
||||
protected :
|
||||
NSTextField* m_textField;
|
||||
long m_selStart;
|
||||
long m_selEnd;
|
||||
|
||||
private:
|
||||
// Common part of both ctors.
|
||||
void Init(WXWidget w);
|
||||
|
||||
// Get our formatter, creating it if necessary.
|
||||
wxTextEntryFormatter* GetFormatter();
|
||||
};
|
||||
|
||||
class wxNSTextViewControl : public wxNSTextBase
|
||||
{
|
||||
public:
|
||||
wxNSTextViewControl( wxTextCtrl *wxPeer, WXWidget w, long style );
|
||||
virtual ~wxNSTextViewControl();
|
||||
|
||||
virtual void insertText(NSString* text, WXWidget slf, void *_cmd) override;
|
||||
|
||||
virtual wxTextSearchResult SearchText(const wxTextSearch &search) const override;
|
||||
|
||||
virtual wxString GetStringValue() const override ;
|
||||
virtual void SetStringValue( const wxString &str) override ;
|
||||
virtual wxString GetRTFValue() const override;
|
||||
virtual void SetRTFValue(const wxString& str) override;
|
||||
virtual void Copy() override ;
|
||||
virtual void Cut() override ;
|
||||
virtual void Paste() override ;
|
||||
virtual bool CanPaste() const override ;
|
||||
virtual void SetEditable(bool editable) override ;
|
||||
virtual long GetLastPosition() const override;
|
||||
virtual void GetSelection( long* from, long* to) const override ;
|
||||
virtual void SetSelection( long from , long to ) override;
|
||||
virtual bool PositionToXY(long pos, long *x, long *y) const override;
|
||||
virtual long XYToPosition(long x, long y) const override;
|
||||
virtual void ShowPosition(long pos) override;
|
||||
virtual void WriteText(const wxString& str) override ;
|
||||
virtual void SetFont(const wxFont & font) override;
|
||||
|
||||
virtual bool GetStyle(long position, wxTextAttr& style) override;
|
||||
virtual void SetStyle(long start, long end, const wxTextAttr& style) override;
|
||||
|
||||
virtual bool CanFocus() const override;
|
||||
|
||||
virtual bool HasOwnContextMenu() const override { return true; }
|
||||
|
||||
#if wxUSE_SPELLCHECK
|
||||
virtual void CheckSpelling(const wxTextProofOptions& options) override;
|
||||
virtual wxTextProofOptions GetCheckingOptions() const override;
|
||||
#endif // wxUSE_SPELLCHECK
|
||||
virtual void EnableAutomaticQuoteSubstitution(bool enable) override;
|
||||
virtual void EnableAutomaticDashSubstitution(bool enable) override;
|
||||
virtual void EnableNewLineReplacement(bool enable) override;
|
||||
virtual bool GetNewLineReplacement() override;
|
||||
|
||||
virtual wxSize GetBestSize() const override;
|
||||
virtual void SetJustification() override;
|
||||
|
||||
virtual void controlTextDidChange() override;
|
||||
|
||||
virtual bool CanUndo() const override;
|
||||
virtual void Undo() override;
|
||||
virtual bool CanRedo() const override;
|
||||
virtual void Redo() override;
|
||||
virtual void EmptyUndoBuffer() override;
|
||||
|
||||
protected:
|
||||
void DoUpdateTextStyle();
|
||||
|
||||
NSScrollView* m_scrollView;
|
||||
NSTextView* m_textView;
|
||||
bool m_useCharWrapping;
|
||||
NSUndoManager* m_undoManager;
|
||||
};
|
||||
|
||||
class wxNSComboBoxControl : public wxNSTextFieldControl, public wxComboWidgetImpl
|
||||
{
|
||||
public :
|
||||
wxNSComboBoxControl( wxComboBox *wxPeer, WXWidget w );
|
||||
virtual ~wxNSComboBoxControl();
|
||||
|
||||
virtual int GetSelectedItem() const override;
|
||||
virtual void SetSelectedItem(int item) override;
|
||||
|
||||
virtual int GetNumberOfItems() const override;
|
||||
|
||||
virtual void InsertItem(int pos, const wxString& item) override;
|
||||
virtual void RemoveItem(int pos) override;
|
||||
|
||||
virtual void Clear() override;
|
||||
|
||||
virtual wxString GetStringAtIndex(int pos) const override;
|
||||
|
||||
virtual int FindString(const wxString& text) const override;
|
||||
virtual void Popup() override;
|
||||
virtual void Dismiss() override;
|
||||
|
||||
virtual void SetEditable(bool editable) override;
|
||||
|
||||
virtual void mouseEvent(WX_NSEvent event, WXWidget slf, void *_cmd) override;
|
||||
|
||||
private:
|
||||
NSComboBox* m_comboBox;
|
||||
};
|
||||
|
||||
#endif // _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_
|
||||
Reference in New Issue
Block a user